MySQL Proxy读写分离实战

先使用一台作为读写,一台作为只读

mysql-proxy --proxy-address=192.168.210.133:3306 --proxy-read-only-backend-addresses=192.168.210.132:3306 --proxy-backend-addresses=192.168.210.131:3306 --proxy-lua-script=/usr/local/share/mysql-proxy/rw-splitting.lua > /var/log/mysql-proxy/mysql-proxy.log &

现在使用一台作为读写.两台作为只读

mysql-proxy --proxy-address=192.168.210.133:3306 --proxy-read-only-backend-addresses=192.168.210.131:3306 --proxy-read-only-backend-addresses=192.168.210.132:3306 --proxy-backend-addresses=192.168.210.134:3306 --proxy-lua-script=/usr/local/share/mysql-proxy/rw-splitting.lua > /var/log/mysql-proxy/mysql-proxy.log &

总结

1.同一个IP不同的session的情况下,Proxy将算作一个client,也就是每个IP是一个CLIENT.而不是实际连接数.

2.控制触发读写分离的参数位于 /usr/local/share/mysql-proxy/rw-splitting.lua 脚本min_idle_connections.当客户端的连接数超过此值时,Proxy的读写分离开始执行.(max_idle_connections参数暂时实验出来没有特殊作用)

3.–proxy-read-only-backend-addresses可以增加多条.但是测试始终是连接到第一条增加的服务器上.不会产生自动分发请求的效果.