分类: Mysql/postgreSQL
2009-07-11 14:20:57
总结
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可以增加多条.但是测试始终是连接到第一条增加的服务器上.不会产生自动分发请求的效果.
MYSQL负载均衡
mysqlproxy支持使用多个--proxy-backend-addresses参数来定义轮询的mysql主机,实现简单的负载均衡,貌似是轮询的做法
例如:/usr/local/sbin/mysql-proxy --proxy-backend-addresses=127.0.0.1:3306 --proxy-backend-addresses=127.0.0.1:3307 --proxy-address=127.0.0.1:4040
一旦某个轮询数据库无法连接,mysqlproxy会报错,但依然会轮询连接这个数据库.
network-mysqld-proxy.c.3709: connect(127.0.0.1:3307) failed: Connection refused
管理
连接4041端口是mysqlproxy的后台
select * from proxy_config;看配置信息
select * from proxy_connections;看连接情况
只要一个节点(237)DOWN了. 那PROXY就连不上了
(原来连着236的SESSION不会断,但新加的连接就报:
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0 )
这时:
PROXY 会报: network-mysqld-proxy.c.3709: connect(10.2.224.237:3306) failed: Connection refused 并试着重新连接!
V0.6.1 有这个BUG,V0.7.0 解决这个问题