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事务的时候出现事务过多异常,就算调整了连接池,和取消事务数量限制还是会报错

解决办法:由于业务上是存储过期数据,分片报错失败的数据可以后续继续跑批刷入分片分表中,故暂时取消事务,不做事务控制。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐