读写分离(Read/Write Splitting)
原理:让主数据库(master)处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库(slave)处理SELECT查询操作。
因为在一个数据库中,处理最多的就是查询请求,所以需要将查询请求分摊到一个集群上。
还可以加一个memcache ,将查询请求缓存起来,以备下次请求时直接使用。
实现读写分离有3个常用的工具。
MySQL Proxy
:lua ,连接路由,Query分析,查询过滤和修改,负载均衡,HA
Amoeba(Java):查询路由,查询分析,查询过滤,读写分离,负载均衡,HA
Cobar(Java)
配置MySQL Proxy
主Mysql负责写: 192.168.217.14 master.example.com
从MySQL负责读: 192.168.217.15 slave.example.com
代理MySQL服务器: 192.168.217.16 proxy.example.com
先配置代理服务器。
现在网上下载一个mysql-proxy的源码包
解压。
创建个链接。
[root@proxy bin]# pwd
/usr/local/mysql-proxy/bin
/usr/local/mysql-proxy/bin
到这个目录下来
执行命令
发现 4040 端口已经打开。
此时,就可以链接代理服务器的4040端口了。