之前一直测试没有走分表、只是主从可以。sharding 没有起作用,这时候还是需要静下来心来检查一下我们的配置文件,最后发现我的shardingsphere.sharding.master-slave-rules 写成了 shardingsphere.master-slave-rules。 最简单的分表策略,其实按照网上的案例都是可以实现的,最重要的是配置文件是依据 shardingsphere版本,我的例子是shardingsphere 4.0.0-RC1 版本,对于3.0的配置信息很多属性已经完全不一样了
spring:
application:
name: kf-imes
profiles:
active: eureka-zone
shardingsphere:
datasource:
names: master1,slave1
master1:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://192.168.1.1:3306/MES002?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
username: zcy
password: zcyK?123456
maxPoolSize: 20
slave1:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://192.168.1.2:3306/MES002?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
username: zcy
password: zcyK?123456
maxPoolSize: 20
sharding:
master-slave-rules:
master1:
master-data-source-name: master1
slave-data-source-names: slave1
tables:
sys_log_business:
actual-data-nodes: master1.SYS_LOG_BUSINESS_$->{2019..2020}
table-strategy:
standard:
sharding-column: CREATE_YEAR
precise-algorithm-class-name: com.kf.imes.config.LogShardingconfig
range-algorithm-class-name: com.kf.imes.config.LogShardingconfig
masterslave:
load-balance-algorithm-type: round_robin
name: ds_m_1_s_1
props:
sql:
show: true
server:
port: 8021
servlet:
context-path: /main
mybatis:
configuration:
database-id: ${config.imes-db.database-id}
log-impl: org.apache.ibatis.logging.log4j.Log4jImpl
mapper-locations: classpath:mapper/**/*.xml
logging:
level:
com.kf.imes.mapper: debug