读写分离笔记

目录

​编辑Mysql主从复制

介绍

步骤

配置

前置条件

主库Master

第一步

第二步

第三步

从库Slave

第一步

第二步

第三步

第四步

测试主从复制是否生效

建立主库

建立从库

测试现象

读写分离案例

背景

思考

1.如何在程序中实现读写分离

2.程序如何判断这是一条查询sql还是删除sql

3.根据该sql是如何找到从库而不是主库

Sharding-JDBC

介绍

框架特点

坐标

入门案例

准备数据库

使用Sharding-JDBC实现读写分离步骤:

项目实现读写分离

数据库环境准备(主从复制)

代码改造

功能测试


Mysql主从复制

介绍

步骤

配置

前置条件

提前准备好两台服务器,分别安装Mysql并启动服务成功(systemctl status mysqld查看mysql状态)

主库Master(虚拟机ip地址,已经更改为静态ip地址):192.168.64.134

从库Slave:192.168.64.xxx (windows IP地址)192.168.64.135

主库Master

第一步

第二步

第三步

本案例,用户名为xiaoming 用户密码为Root@123456

需要先登录数据库

密码root

从库Slave

第一步

第二步

第三步

master_log_file和master_log_pos会变动

change master to
master_host='192.168.64.134',master_user='xiaoming',master_password='Root@123456',master_log_file='mysql-bin.000008',master_log_pos=294;

第四步

即可

测试主从复制是否生效

密码皆为root

建立主库

建立从库

测试现象

主库中新建数据库itcast

会发现从库中也出现了itcast数据库

接着在主库的itcast数据库中新建一张user表

会发现从库也出现了该表

说明,在主库的操作会复制到从库当中,同理,当我们在主库的user表中插入数据,从库也会复制进去

读写分离案例

背景

思考

1.如何在程序中实现读写分离

2.程序如何判断这是一条查询sql还是删除sql

3.根据该sql是如何找到从库而不是主库

Sharding-JDBC

介绍

框架特点

坐标

只需导入坐标即可

入门案例

该案例需要先将主从复制配置完成

准备数据库

在主库中创建rw(read,write读写)数据库

在rw数据库中创建user表

以课程资料的初始工程项目rw_demo为例

使用Sharding-JDBC实现读写分离步骤:

1.导入Sharding-JDBC的maven坐标

2.在yml配置文件中配置读写分离规则

只需要根据格式会修改配置信息和添加数据源即可

rw是数据库的名称

3.在yml配置文件中配置允许bean覆盖

项目实现读写分离

数据库环境准备(主从复制)

1.在主库中创建reggie数据库(从库会进行复制)

2.导入课程资料的sql表

代码改造

注意:在reggie项目改造时,要切换成分支(v1.1),不要在master主分支上修改

和之前一样

功能测试

测试日志显示:

查询操作对应从库slave

增删改操作对应主库master

测试完成

进行推送->进行合并分支

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值