shardingsphere 3.x升级到4.x 方案: 附按月分表、HitManager强制路由、select 查询不到内容
背景
项目中使用到sharding, 3.x版本有若干bug不细述, 谷歌如下, 我遇到的是偶尔会不能分表查询, 查阅资料后决定升级到4.x版本
1. 升级配置
maven
升级前
<dependency>
<groupId>io.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>3.1.0</version>
</dependency>
升级后
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>4.1.1</version>
</dependency>
可以看到, 当前sharding已经是apache的顶级项目了
application.yml
升级前
sharding:
jdbc:
datasource:
xxx
config:
props:
xxx
sharding:
xxx
升级后
spring:
shardingsphere:
datasource:
xxx
props:
xxx
sharding:
xxx
主要变化的点在层级关系中, 4.x中配置在spring下的shardingsphere中, datasource、props、sharding为统一层级的配置.
配置方面的升级就是以上两部分, 之后就是代码变动的点.
2. 按月分表策略
按月分表: 网上有基于3.x版本实现ComplexKeysShardingAlgorithm接口的方案https://blog.csdn.net/OliverAAAAAA/article/details/91380400,
升级到4.x之后 可以发现接口的定义发生了变化
3.x版本 ComplexKeysShardingAlgorithm接口
public interface ComplexKeysShardingAlgorithm extends