1、环境介绍
虚拟机中新建6台服务器,分别配置成两个一主两从模式的数据库集群,主从同步上一篇详解。
注意:创建克隆需要修改静态IP地址、mysql 的server-id、以及server-uuid参数,每台服务器必须不同。
2、数据库建表
3、数据库映射的实体类
4、读写分离配置
# 配置6个数据源 spring.shardingsphere.datasource.names=master0,slave0,slave1,master1,slave2,slave3 spring.shardingsphere.datasource.master0.type=com.zaxxer.hikari.HikariDataSource spring.shardingsphere.datasource.master0.driver-class-name=com.mysql.jdbc.Driver spring.shardingsphere.datasource.master0.jdbc-url=jdbc:mysql://192.168.92.132:3306/task spring.shardingsphere.datasource.master0.username=root spring.shardingsphere.datasource.master0.password=root spring.shardingsphere.datasource.slave0.type=com.zaxxer.hikari.HikariDataSource spring.shardingsphere.datasource.slave0.driver-class-name=com.mysql.jdbc.Driver spring.shardingsphere.datasource.slave0.jdbc-url=jdbc:mysql://192.168.92.133:3306/task spring.shardingsphere.datasource.slave0.username=root spring.shardingsphere.datasource.slave0.password=root spring.shardingsphere.datasource.slave1.type=com.zaxxer.hikari.HikariDataSource spring.shardingsphere.datasource.slave1.driver-class-name=com.mysql.jdbc.Driver spring.shardingsphere.datasource.slave1.jdbc-url=jdbc:mysql://192.168.92.134:3306/task spring.shardingsphere.datasource.slave1.username=root spring.shardingsphere.datasource.slave1.password=root spring.shardingsphere.datasource.master1.type=com.zaxxer.hikari.HikariDataSource spring.shardingsphere.datasource.master1.driver-class-name=com.mysql.jdbc.Driver spring.shardingsphere.datasource.master1.jdbc-url=jdbc:mysql://192.168.92.135:3306/task spring.shardingsphere.datasource.master1.username=root spring.shardingsphere.datasource.master1.password=root spring.shardingsphere.datasource.slave2.type=com.zaxxer.hikari.HikariDataSource spring.shardingsphere.datasource.slave2.driver-class-name=com.mysql.jdbc.Driver spring.shardingsphere.datasource.slave2.jdbc-url=jdbc:mysql://192.168.92.136:3306/task spring.shardingsphere.datasource.slave2.username=root spring.shardingsphere.datasource.slave2.password=root spring.shardingsphere.datasource.slave3.type=com.zaxxer.hikari.HikariDataSource spring.shardingsphere.datasource.slave3.driver-class-name=com.mysql.jdbc.Driver spring.shardingsphere.datasource.slave3.jdbc-url=jdbc:mysql://192.168.92.137:3306/task spring.shardingsphere.datasource.slave3.username=root spring.shardingsphere.datasource.slave3.password=root # 读写分离配置 spring.shardingsphere.sharding.master-slave-rules.master0.master-data-source-name=master0 spring.shardingsphere.sharding.master-slave-rules.master0.slave-data-source-names=slave0,slave1 spring.shardingsphere.sharding.master-slave-rules.master1.master-data-source-name=master1 spring.shardingsphere.sharding.master-slave-rules.master1.slave-data-source-names=slave2,slave3 # 读数据时的策略(轮询) spring.shardingsphere.masterslave.load-balance-algorithm-type=round_robin # 配置id生成策略 spring.shardingsphere.sharding.tables.c_order.key-generator.column=id spring.shardingsphere.sharding.tables.c_order.key-generator.type=SNOWFLAKE # 数据库表分片配置 (根据user_id字段分库) spring.shardingsphere.sharding.tables.c_order.database-strategy.inline.sharding-column=user_id spring.shardingsphere.sharding.tables.c_order.database-strategy.inline.algorithm-expression=master$->{user_id % 2}
5、测试数据库分片及读写分离情况