ShardingSphere-JDBC 5.1 动态更新actual-data-nodes
前言
项目中根据年份进行分表(主要存放着日志类数据),每年会生成新的表,所以actual-data-nodes
属性需要在不重新启动的前提下动态更新,网上找了好多相关的修改办法,大多都是4.x版本的,最后在官方Github的Issues中找到了相应的解答
链接:https://github.com/apache/shardingsphere/issues/16725
上述链接的答疑中,已经提供了相应的解决办法,我在尝试的过程中想到了一种更简便的办法(其实就是把文中的两种方式结合了一下),下面细说
actual-data-nodes
回答中提到actual-data-nodes
除了使用Groovy
表达式(如下)的方式以外
actual-data-nodes: ds.table_name_$->{
2023...2024}
还可以使用静态方法的形式配置(我在官方文档中没看到这种形式,可能是没找到),如下
actual-data-nodes: ds.table_name_$->{
com.demo.util.LocalShardingDatabasesAndTablesUtils.getActualDataNodes()}
public class LocalShardingDatabasesAndTablesUtils {
public