Mysql主从同步介绍:
- 主从同步字面意义:一台主(Master)数据库服务器,一台从(slave)数据库服务器
- 主数据库提供给客户端访问,从数据库同步主数据库服务数据;
主从同步过程
- 主服务开启binlog日志,从服务器通过IO线程读取主服务器binlog日志里的sql语句
- 将读到数据写入从服务器relay-log 日志文件中,sql线程读取relay-log 中继日志 sql 执行
配置master服务器
- vim /etc/my.cnf 配置文件

配置log_bin 日志 文件名为master_159
增加server_id = 取值范围1~255 之间
- systemctl restart mysqld 重启服务
- show master status;登录数据库 查看master 状态信息

File 当前binlog 文件名 Position 当前记录偏移量
binlog备份文件 每满1G就会自动新增一个文件,或者通过重启数据库服务也会新增一个日志文件
执行mysqldump 备份数据库也会生成一个新的日志文件
添加同步用户

mysql> grant replication slave on . to repluser@“%” identified by “123q…A”;
密码手敲 粘贴 有格式问题
- vim /etc/my.cnf
- 添加server_id = 160 保存退出
- systemctl restart mysqld 重启服务
- mysql -uroot -p密码 登录数据库服务
- show slave status;

配置同步的数据库主服务器信息
master_host=“主服务器Ip地址”
master_user=“主服务器添加用户名”
master_password=“用户密码”
master_log_file=“主服务器binlog日志名”
master_log_pos=偏移量
当上述Slave_IO_Running,Slave_SQL_Running 都为YES 时则成功
测试数据同步
所有错误的 统一解决办法:
把slave角色的服务器恢复为独立的数据库服务器,重新配置为从服务器。

读写分离策略方案:
- 程序内部,自己编写读写分离,访问数据库逻辑
- 数据库中间件,mycat,mysql-proxy,maxscale


- 上述类图可以看的出AbstractRoutingDataSource 实现了javax.sql.DataSource 接口;
- DataSource 是JAVA为数据库厂商提供数据库连接定义驱动实现规范。
- AbstractRoutingDataSource 是spring jdbc提供动态数据源切换抽象类
- 按照spring.xml 大家会配置一个dataSourceBean对象,在springboot 加载对象也会从配置文件读取dataSource资源 创建DataSource对象


上图可以看出,属性 默认数据源,map集合目标数据源;因为实现了InitializingBean 在注册完bean对象会通过钩子函数方式调用afterPropertiesSet方法。只需要在是注册bean对象时指定,targetDataSource和DefaultTargetDataSource即可

当动态需要切换数据源时,可以看到getConnection方法 调用determineTargetDataSource

调用了determineCurrentLookupKey,所以实现AbstractRoutingDataSource 覆盖该方法,返回map中Key就可以实现数据源切换

1.pom依赖
2.自定义数据源
3. AbstractRoutingDataSource实现类
4.枚举类
5.AOP 拦截
writeReadDemo: springBoot读写分离实现代码https://gitee.com/cleraa/writeReadDemo.git
详解Spring的事务管理PlatformTransactionManager - 简书

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/183496.html