面对日益增加的系统访问量,数据库的吞吐量面临着巨大瓶颈。 对于同一时刻有大量并发读操作和较少写操作类 型的应用系统来说,将数据库拆分为主库和从库,主库负责处理事务性的增删改操作,从库负责处理查询操作,能 够有效的避免由数据更新导致的行锁,使得整个系统的查询性能得到极大的改善。
Sharding-JDBC提供一主多从的读写分离配置,可独立使用,也可配合分库分表使用,同一线程且同一数据库连接 内,如有写入操作,以后的读操作均从主库读取,用于保证数据一致性。Sharding-JDBC不提供主从数据库的数据 同步功能,需要采用其他机制支持。
这里采用 mysql的主从同步配置实现数据同步
配置 MySQL 主动同步(docker版本)
一.创建两个 docker 容器
以 mysql3307为主库,mysql3308为从库
二.修改主从库的配置文件
1.进入容器:
docker exec -it mysql3307 /bin/bash
2.修改配置文件:
vi /etc/mysql/mysql.conf.d/mysqld.cnf
3.主从库配置文件分别添加以下内容
3.1主库:
#开启 MySQL 日志
log-bin = mysql-bin
#设置服务 id 主从不能一致
server-id = 1
#设置需要主从同步的表
binlog-do-db = user_db
#屏幕系统数据库同步
binlog-ignore-db = mysql
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
3.2从库:
#开启 MySQL 日志
log-bin = mysql-bin
#设置服务 id 主从不能一致
server-id = 2
#设置需要主从同步的表
binlog-do-db = user_db
#屏幕系统数据库同步
binlog-ignore-db = mysql.%
binlog-ignore-db = information_schema.%
binlog-ignore