cms建站系统哪个好网络销售哪个平台最好
问题场景:
最近在学习ShardingSphere,跟着教程一步步做shardingJDBC,但是想在开启数据分片的时候还能使用读写分离,一直失败,开始是一直能读写分离,但是分偏见规则感觉不生效,一直好像是走不进去[sharding]这个配置中,后来debug调试可以找到相关配置,又感觉是什么代码给覆盖了或者不生效了。
问题解决:
后来找资料一直没有,看到教程下有人一直在问读写分离和数据分片没法一起使用吗?我就试了下关闭读写分离,真的就可以数据分片了,后来查资料:
单独的读写分离配置之后,数据分片就无法生效了,是两块分开的单独功能;如果既想使用读写分离又想数据分片,可以使用如下配置,主要看sharding->master-slave-rules设置。
spring:shardingsphere:props:sql:show: true # 参数配置,显示sqldatasource: # 配置数据源# 给每个数据源取别名,下面的ds1,ds2,ds3任意取名字names: master,salve1# 给master-ds1每个数据源配置数据库连接信息master:# 配置druid数据源type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3307/springboot?useUnicode=true&characterEncoding=utf8&tinyInt1isBit=false&useSSL=false&serverTimezone=GMTusername: rootpassword: rootmaxPoolSize: 100minPoolSize: 5# 配置ds2-slavesalve1:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3308/springboot?useUnicode=true&characterEncoding=utf8&tinyInt1isBit=false&useSSL=false&serverTimezone=GMTusername: rootpassword: rootmaxPoolSize: 100minPoolSize: 5# 配置默认数据源masterslave: # 配置数据源的读写分离,但是数据库一定要做主从复制# 配置主从名称,可以任意取名字name: ms# 配置主库master,负责数据的写入master-data-source-name: master# 配置从库slave节点slave-data-source-names: salve1# 配置slave节点的负载均衡均衡策略,采用轮询机制load-balance-algorithm-type: round_robinsharding:master-slave-rules: # 在使用数据分片功能情况下,配置读写分离功能ds0: # 自定义一个虚拟数据源名字,用于自动路由下方主从数据源masterDataSourceName: master # 指定主数据源slaveDataSourceNames: # 指定从数据源- salve1loadBalanceAlgorithmType: round_robinbinding-tables:- fa_user # 指明了分库分表要处理的虚拟表名字tables:# user_table 逻辑表名fa_user:# 数据节点:数据源$->{0..N}.逻辑表名$->{0..N}actualDataNodes: ds0.fa_user_$->{2022..2023}# 拆分库策略
# database-strategy:
# standard:
# sharding-column: create_time
# precise-algorithm-class-name: com.wpj.user.shardingSphere.UserDataBaseRule# 拆分表策略table-strategy:standard:sharding-column: create_timeprecise-algorithm-class-name: com.wpj.user.shardingSphere.UserTableRule