首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql-proxy 0.8.3负载均衡无法正常工作

mysql-proxy 0.8.3负载均衡无法正常工作
EN

Stack Overflow用户
提问于 2012-10-07 15:02:58
回答 1查看 2.3K关注 0票数 0

下面列出了三个Mysql节点:

代码语言:javascript
复制
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之后,创建如下配置:

代码语言:javascript
复制
[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-splitting.lua

代码语言:javascript
复制
min_idle_connections = 1,
max_idle_connections = 2,

然后像这样启动mysql-proxy:

代码语言:javascript
复制
./bin/mysql-proxy --defaults-file=mysql-proxy.cnf

登录代理:

代码语言:javascript
复制
mysql -uproxy -ppassword -P4040 -h192.168.1.67

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

EN

回答 1

Stack Overflow用户

发布于 2012-12-02 11:48:27

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

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

寻求最低的proxy.global.backends.connected_clients,即当前在后端活动的连接数量,似乎是确定所用后端的优先级的好方法。

您还应该查看平衡模块lib/mysql-proxy/lua/proxy/balance.lua

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12766807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档