sharding-jdbc使用笔记:
问题1
项目中还有正liquidbase,启动报错:SQLFeatureNotSupportedException: setFetchSIze
解决办法: 关掉liquibase,启动命令中加入,no-liquibase
问题2
启动后数据库健康检查失败:DataSource health check failed
解决办法:参考连接 https://www.cnblogs.com/laeni/p/16089788.html
问题3
根据主键查询不打印sql日志
解决办法:使用一个不存在的主键去查询就会出现日志,会到所有分片中去查询数据。因此推测sharding-jdbc似乎对findById()有进行优化,主键查询不会无脑进行所有分片查询。-----------好像并没有优化。。。
问题4
自定义分片方法,单独实现了RangeShardingAlgorithm 接口,配置也没问题,但是启动报错
解决办法:需要同时实现精确分片PreciseShardingAlgorithm 接口一起配置使用,正常启动。
问题5
更新数据的时候为什么不使用分片键作为条件呢??
解决办法:。。。
问题6
在使用XA事务的时候出现事务过多异常,就算调整了连接池,和取消事务数量限制还是会报错
解决办法:由于业务上是存储过期数据,分片报错失败的数据可以后续继续跑批刷入分片分表中,故暂时取消事务,不做事务控制。