mysql proxy 0.8.3负载平衡无法工作

mysql proxy 0.8.3负载平衡无法工作,mysql,load-balancing,mysql-proxy,Mysql,Load Balancing,Mysql Proxy,我有以下三个Mysql节点: Master Address: 192.168.1.77:3306 Slave1 Address: 192.168.1.76:3306 Slave2 Address: 192.168.1.69:3306 在192.168.1.67上安装了0.8.3版的mysql proxy,并在下面创建了我的配置: [mysql-proxy] admin-username=proxy admin-password=proxy admin-lua-script=/local/sof

我有以下三个Mysql节点:

Master Address: 192.168.1.77:3306
Slave1 Address: 192.168.1.76:3306
Slave2 Address: 192.168.1.69:3306
在192.168.1.67上安装了0.8.3版的mysql proxy,并在下面创建了我的配置:

[mysql-proxy]
admin-username=proxy
admin-password=proxy
admin-lua-script=/local/software/mysql-proxy/lib/mysql-proxy/lua/admin.lua
proxy-read-only-backend-addresses = 192.168.1.76:3306,192.168.1.69:3306
proxy-backend-addresses=192.168.1.77:3306
proxy-lua-script=/local/software/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua
log-file=/local/software/mysql-proxy/log/mysql-proxy.log
plugin-dir=/local/software/mysql-proxy/lib/mysql-proxy/plugins
plugins=proxy,admin,debug,replicant
log-level=debug
keepalive=true
编辑文件:rw-spliting.lua

min_idle_connections = 1,
max_idle_connections = 2,
然后按如下方式启动mysql代理:

./bin/mysql-proxy --defaults-file=mysql-proxy.cnf
登录代理:

mysql -uproxy -ppassword -P4040 -h192.168.1.67

当我一次又一次地执行select sql以打开不同的mysql proxy 4040窗口时,从日志中我发现所有select sql查询都被发送到76的同一台服务器,但是只有关闭76,它才会将查询发送到从属服务器69。我不知道为什么负载平衡不起作用,有什么地方我犯了错误吗?提前感谢。

rw-spliting.lua似乎将一些实现留给读者作为练习。有一条评论是“选择一个随机的后端”,但我没有看到它的实现,也没有看到循环技术。当没有空闲连接时,代码似乎从阵列的顶部填充后端服务器,然后移动到下一个

如果主机上总是有空闲连接,那么当前的实现更倾向于去那里。之后,它使用只读后端服务器列表中的第一个空闲连接。在本例中为76,直到在转到69时将其关闭。我不明白为什么77,读/写后端不是首选。这可能与可用空闲连接的数量有关

看起来,寻找最低的proxy.global.backends.connected_客户机(后端当前活动的连接数)是一种确定所用后端优先级的好方法

您还应该看看balance模块lib/mysql proxy/lua/proxy/balance.lua