MySQL数据库的主从复制和读写分离

在我们的系统中,使用nginx负载均衡----提高用户的访问量,将用户的请求转向到各个子系统。
在前台系统中,使用redis缓存----极大的提高用户的访问效率。
在个子系统中间,采用松耦合的rabbitMQ消息队列----来传递信息,使我们的系统框架可以满足高并发。

在后端数据库访问的时候,一台mysql数据库成为了系统访问的瓶颈。
一旦mysql的服务出现问题(数据库查询过多–造成数据库响应缓慢)----采用读写分离的方式。

这时我们采用springAOP的面向切面的方式自定义一个切面,
在所有数据库操作时----先被我们的切面拦截,在切面中----实现了动态切换数据源,
将读写的操作进行分离----写操作配置一个数据源,读操作配置两个数据源
(读的操作》》写的操作)读操作占80%~90%

利用面向切面----可以获取到访问数据库请求的方法名,通过方法名----判断他是读操作还是写操作
我们有一个方法名的约定:query select get 查询操作
insert update delete 写操作
这样就可以通过方法名转向到数据源(两台从机器 利用hash一致性来判断写在哪一台)

如果访问量再大的话–会造成mysql宕机无法为用户提供服务,这将造成无法挽回的后果甚至经济损失
采用主从复制的方式,我们搭建三台服务器的集群,将一台服务器作为主,两台服务器作为从。
(我们在主服务器上----配置打开写二进制文件,这样才能实现主从复制,)
在从服务器上–执行绑定的sql语句,指定主服务器的IP,端口,用户名,密码,日志文件名称,位置
启动我们的从服务,
如果配置成功,在主服务器的mysql上增加数据库,增加表,修改表结构,增加数据,修改数据,
这时候从数据库的数据都会–与主数据库同步

这样当主服务器宕机时,这时候可以将数据源切换到某一个从服务器,将他的配置改为主
(先停止当前从的复制服务,再开启二进制文件写操作,然后将另一个从绑定到这个新的主服务器上,改变数据源连接指向这个新的主服务器,重启服务)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值