读写分离
当一个库的查询压力过大之后,我们通常会进行读写分离操作
配置:
如下:一主二从
##数据源名称,多数据源以逗号分隔
sharding.jdbc.datasource.names=dsmaster,dssalve0,dssalve1
sharding.jdbc.datasource.dsmaster.type=com.zaxxer.hikari.HikariDataSource
sharding.jdbc.datasource.dsmaster.driver-class-name=com.mysql.jdbc.Driver
sharding.jdbc.datasource.dsmaster.jdbc-url=jdbc:mysql://localhost:3306/dsmaster?createDatabaseIfNotExist=true
sharding.jdbc.datasource.dsmaster.username=root
sharding.jdbc.datasource.dsmaster.password=root
sharding.jdbc.datasource.dssalve0.type=com.zaxxer.hikari.HikariDataSource
sharding.jdbc.datasource.dssalve0.driver-class-name=com.mysql.jdbc.Driver
sharding.jdbc.datasource.dssalve0.jdbc-url=jdbc:mysql://localhost:3306/dssalve0?createDatabaseIfNotExist=true
sharding.jdbc.datasource.dssalve0.username=root
sharding.jdbc.datasource.dssalve0.password=root
sharding.jdbc.datasource.dssalve1.type=com.zaxxer.hikari.HikariDataSource
sharding.jdbc.datasource.dssalve1.driver-class-name=com.mysql.jdbc.Driver
sharding.jdbc.datasource.dssalve1.jdbc-url=jdbc:mysql://localhost:3306/dssalve1?createDatabaseIfNotExist=true
sharding.jdbc.datasource.dssalve1.username=root
sharding.jdbc.datasource.dssalve1.password=root
#查询时的负载均衡算法,目前有2种算法,round_robin(轮询)和random(随机)
sharding.jdbc.config.masterslave.load-balance-algorithm-type=round_robin
#主从名称
sharding.jdbc.config.masterslave.name=ms
#主数据源名称
sharding.jdbc.config.masterslave.master-data-source-name=dsmaster
#从数据源名称,多个用逗号隔开
sharding.jdbc.config.masterslave.slave-data-source-names=dssalve0,dssalve1
#是否开启SQL显示,默认值: false
sharding.jdbc.config.masterslave.props.sql.show= true
修改application.properties文件:
#spring.profiles.active=jpa-databases
#spring.profiles.active=sharding-databases
spring.profiles.active=master-slave
可以简单测试下:
(1)运行testSave():数据会保存到dsmaster
(2)手动把数据复制到从库
(3)运行testPage():会从从库进行查询。
主从复制
主从复制见网络文章,可以一步一步实战:
https://www.cnblogs.com/xhyan/p/6598992.html
未完待续
网友评论