MySQL 主从复制与读写分离实战
一、为什么需要读写分离
单库:1000次查询 + 100次写入 = 1100次请求全打一个库 读写分离: 主库:100次写入 从库:1000次查询 主库压力降 10 倍二、配置主从复制
# 主库 my.cnf [mysqld] server-id = 1 log-bin = mysql-bin binlog-do-db = seckill_db-- 主库创建复制账号CREATEUSER'repl'@'%'IDENTIFIEDBY'repl123';GRANTREPLICATIONSLAVEON*.*TO'repl'@'%';FLUSHPRIVILEGES;SHOWMASTERSTATUS;-- 记录 file 和 position# 从库 my.cnf [mysqld] server-id = 2 relay-log = mysql-relay-bin-- 从库执行CHANGE MASTERTOMASTER_HOST='192.168.1.100',MASTER_USER='repl',MASTER_PASSWORD='repl123',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=154;STARTSLAVE;SHOWSLAVESTATUS\G;-- 查看同步状态三、SpringBoot 读写分离
spring:datasource:dynamic:primary:masterdatasource:master:url:jdbc:mysql://192.168.1.100:3306/seckill_dbslave:url:jdbc:mysql://192.168.1.101:3306/seckill_db@Service@DS("slave")publicclassProductQueryService{// 查询走从库}@Service@DS("master")publicclassProductWriteService{// 写入走主库}💡 觉得有用的话,点赞 + 关注【张老师技术栈】吧!
