在我《Spring Cloud微服务-全栈技术与案例解析》书中都是通过XML方式配置。
今天给大家演示的是单库中分表的操作,如果用XML方式配置,那么就是下面的配置:
我们将user表分成了4个,分别是user_0,user_1,user_2,user_3,通过id取模的方式决定数据落在哪张表上面。
如果用Spring Boot方式配置自然就简单多了,如下:
自定义分片算法
在1.x版本中,单分片算法是通过实现SingleKeyTableShardingAlgorithm,示例代码如下:
我们这边引入的Spring Boot Starter包是2.x的版本,在这个版本中,分片算法的接口有调整,我们需要用到标准分片策略StandardShardingStrategy。提供对SQL语句中的=, IN和BETWEEN AND的分片操作支持。
StandardShardingStrategy只支持单分片键,提供PreciseShardingAlgorithm和RangeShardingAlgorithm两个分片算法。
PreciseShardingAlgorithm是必选的,用于处理=和IN的分片。RangeShardingAlgorithm是可选的,用于处理BETWEEN AND分片,如果不配置RangeShardingAlgorithm,SQL中的BETWEEN AND将按照全库路由处理。
自定义一个单分片算法:
使用需要修改我们之前的配置:
源码参考:
https://github.com/yinjihuan/spring-cloud/tree/master/fangjia-sjdbc-sharding-table-springboot
参考代码中测试的代码也写好了,在Controller中,启动后通过调用接口的方式测试数据的添加和查询。
号外号外
另外Sharding-Sphere 3.0.0.M3也发布了,新版本看点:
1.XA分布式事务
2.数据库治理模块增强
3.API部分调整
4.修复M2Bug
项目地址:
https://github.com/sharding-sphere/sharding-sphere/
https://gitee.com/sharding-sphere/sharding-sphere/
一个这么优秀的框架,这么靠谱的开源团队,大家赶紧学起来呀!
猿天地
领取专属 10元无门槛券
私享最新 技术干货