ShardingSphere分库分表

简介:ShardingSphere三大重要产品,ShardingJDBC、ShardingProxy、ShardingSidecar。ShardingSphere目前是由京东数科组件团队开发。未来打算做成一个服务及的产品。

  • ShardingJDBC:相当于一个特殊数据库驱动包,主要作sql的分发。是一个轻量级的java框架,但开发的话业务侵入较大。
  • ShardingProxy:是一个独立部署的服务,业务零入侵。但功能比较固定,目前只支持mysql和pgsql。
  • ShardingSidecar:目前尚在规划阶段

ShardingJDBC

主键生成策略:目前支持UUID和SNOWFLAKE(雪花算法)

分片方式:ID取模(拓展麻烦,需要数据迁移)、按创建时间分片、按类型分片

五种分片策略:

  1. None:不分片
  2. 行表达式分片策略-Inline:只支持单分片健;支持对 SQL语句中的 = 、IN 等的分片操作,不支持between and。
  3. 标准分片策略-Standard:SQL 语句中有>>=<=<=,IN和BETWEEN AND操作符,都可以应用此分片策略。只支持单分片健。并提供了两种分片算法:精准分片(PreciseShardingAlgorithm)和范围分片(PreciseShardingAlgorithm)。必须实现精准分片。
  4. 复合分片策略-Complex:SQL 语句中有>>=<=<=IN 和 BETWEEN AND 等操作符,且复合分片策略支持对多个分片健操作。实现 ComplexKeysShardingAlgorithm 接口
  5. Hint分片策略-Hint:这种分片策略无需配置分片健,分片健值也不再从 SQL中解析,而是由外部指定分片信息,让 SQL在指定的分库、分表中执行。

一般生产中非必要分库分表的话尽量不要分库分表,分库分表带来的后果还是比较严重,业务入侵达,开发成本高,查询效率慢。如果一定要分库分表的话,也需要配合ES等搜索引擎结合使用。

ShardingJDBC流程图示:

 ShardingSphere源码中包含很多的SPI扩展点。诸如:主键生成策略、分布式事务实现......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值