MySQL-proxy 实现读写分离

本文介绍了如何在实验环境中配置MySQL-proxy实现读写分离。首先确保Server1(主)和Server2(从)的主从复制配置完成,然后在Server3上安装并配置MySQL-proxy,设置读写分离的后端地址,并启用lua脚本来判断连接数以决定读写操作。当连接数超过2时,读请求被转发到Server2,而写操作仍在Server1上执行,以此达到读写分离的效果。此外,还提到了使用lsof监控和tcpdump抓包分析来验证和理解读写分离的运作机制。
摘要由CSDN通过智能技术生成

实验环境:
Server1:master
Server2:slave
Server3:mysql-proxy
Fondation7:client
在做实验之前配置好server1和server2的主从复制,不再演示
Proxy的配置:

[root@server3 ~]# tar zxf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz
[root@server3 ~]# mv mysql-proxy-0.8.5-linux-el6-x86-64bit /usr/local/mysql-proxy
[root@server3 ~]#cd /usr/local/mysql-proxy/
[root@server3 mysql-proxy]#mkdir conf
[root@server3 mysql-proxy]#mkdri logs
[root@server3 conf]# vim mysql-proxy.conf
[mysql-proxy]
user=root
proxy-address=0.0.0.0:3306
proxy-backend-addresses=172.25.7.1:3306
proxy-read-only-backend-addresses=172.25.7.2:3306
proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua
log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log
log-level=debug
daemon=true
keepalive=true

添加环境变量:

[root@server3 conf]# vim ~/.bash_profile

1

这里写图片描述

[root@server3 conf]# source ~/.bash_profile

1

设置最大链接数,当大于2时开始读写分离

[root@server3 mysql-proxy]# cd share/doc/mysql-proxy/
[root@server3 mysql-proxy]# vim rw-splitting.lua

1
2

这里写图片描述
开启mysql-proxy

[root@server3 mysql-proxy]#chmod 600 conf/mysql-proxy.conf
[root@server3 mysql-proxy]#mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/mysql-proxy.conf

1
2

在server1和server2

[root@server1 ~]# yum install lsof -y ##进行监控

1

这里写图片描述
这里写图片描述
当打开三个客户端的时候:
这里写图片描述
这里写图片描述
当链接数为三时,proxy将客户端的读请求转至server2.
当insert时仍然还是在server1上操作。
从而实现了读写分离
此外我们还可以通过tcpdump进行抓包分析:

[root@server3 mysql-proxy]# tcpdump -i eth0 -vv port 3306

1

这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值