mysql的读写分离

读写分离简介:

一:工作环境

大型网站为了软件大量的并发访问,除了在网站实现分布式负载均衡,远远不够。到了数据业务层、数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢失的话,后果更是 不堪设想。这时候,我们会考虑如何减少数据库的联接,一方面采用优秀的代码框架,进行代码的优化,采用优秀的数据缓存技术, 如:memcached,如果资 金丰厚的话,必然会想到假设服务器群,来分担主数据库的压力。那么通过MySQL主从配置,实现读写分离,减轻数据库压力。

二:基本原理

让master来响应事务性操作,让slave来响应select非事务性操作,然后再采用主从复制来把master上的事务性操作同步到slave数据库中。

环境:

selinux 和iptables均为disabled的状态

rhel6.5

server2:172.25.254.2 master

server3:172.25.254.3 slave

server4:172.25.254.4 proxy

配置过程:

server4安装mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz -C /usr/local/   ##解压到/usr/local这个目录中

(本次实验是移动了)

cd /usr/local/

ln -s mysql-proxy-0.8.5-linux-el6-x86-64bit/ mysql-proxy     ##做软连接

ll        ##查看软连接

mkdir /usr/local/mysql-proxy/log    ##建立日志目录

mkdir /usr/local/mysql-proxy/etc     ##建立i配置文件的存放目录

cd mysql-proxy/

vim etc/mysql-proxy.conf    #改写配置文件

***

[mysql-proxy]

user=root

deamon=true

keepalive=true

log-level=info

pid-file=/usr/local/mysql-proxy/log/mysql-proxy.pid     ##pid文件的存放目录

log-file=/usr/local/mysql-proxy/log/mysql-proxy.log     ##日志存放目录

proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua     ##lua脚本的存放目录

proxy-address=172.25.254.4:3306     ##调度器的ip地址

proxy-backend-addresses=172.25.254.2:3306      ##只写的(master的ip地址)

proxy-read-only-backend-addresses=172.25.254.3:3306   ##只读的(slave的ip地址)

plugins=proxy

***

chmod 660 etc/mysql-proxy.conf       ##给之前配置文件改为660权限

vim share/doc/mysql-proxy/rw-splitting.lua     ##编辑脚本文件

更改lua脚本的内容如下,40行改为1,41行改为2

bin/mysql-proxy --defaults-file=/usr/local/mysql-proxy/etc/mysql-proxy.conf      ##打开proxy调度器

netstat -antlp    ##查看3306端口是否开启

三台虚拟机安装losf监控工具,进行监控,查看3306端口哪个终端占用

yum install losf -y     ##安装losf工具

lsof -i:3306       ##查看监控情况

在master上设置授权远程登陆数据库的用户(server2)

选择真机进行登陆

此时查看master(server2)上,端口3306监控

远程查看信息

远程写入

因为之前lua最大的连接数为2,所以在外部客户端连接数超过2时,就会发生读写分离

多几个数据库连接,在master中,查看监控

当server3关闭slave时

在真机连接中,增加数据并查看,会发现读不到,因为slave关闭掉了,实现了读写分离

在server3中打开slave

此时,真机中重新进入库,会发现数据

此时查看server3上的lsof监控

整个过程中,server4(proxy)中会出现如下

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值