MySQL代理负载均衡器问题

时间:2014-05-04 16:39:13

标签: mysql mysql-proxy

我尝试配置mysql-proxy 0.8.2。它背后有两个主机:M1(10.10.10.1)和M2(10.10.10.2)。

M1M2之间存在MySQL复制。 M1是主人,M2是奴隶。所有请求“写入”的类型,正确转发到M1并立即从M1复制到M2

但如果请求类型为“已读”,则代理无法转发至M2,仅转发至M1。我用tcpdump检查了这些数据包,我看到M1上收到的每个数据包。从代理到MySQL服务器的连接正在与telnet& amp; MySQL命令。

当我关闭M1服务器时,所有请求(读/写)都发送到另一个(M2)服务器。关闭M1服务器后,M2运行良好。每条记录都可用。

我不明白为什么mysql-proxy也没有将读取数据包转发到M2,而M1可用。[mysql-proxy] daemon = true user = mysql proxy-skip-profiling = true keepalive = true max-open-files = 2048 event-threads = 50 pid-file = /var/run/mysql-proxy.pid log-file = /var/log/mysql-proxy.log log-level = debug admin-address = 10.10.10.5:4401 admin-username = admin admin-password = xxxxxxx proxy-address = 0.0.0.0:3307 proxy-read-only-backend-addresses = 10.10.10.2:3306 proxy-backend-addresses = 10.10.10.1:3306 plugin-dir=/usr/local/lib/mysql-proxy/plugins plugins=proxy,admin,debug,replicant LUA_PATH = /usr/lib/mysql-proxy/lua/proxy/?.lua LUA_CPATH = /usr/lib/mysql-proxy/lua/?.so admin-lua-script=/opt/mysql-proxy-0.8.2/admin.lua proxy-lua-script=/usr/local/lib/mysql-proxy/lua/proxy/rw-splitting.lua proxy-lua-script=/usr/local/lib/mysql-proxy/lua/proxy/balance.lua proxy-lua-script=/opt/mysql-proxy-0.8.2/riporter.lua 问题是什么?或者它应该如何正常运行?

这是我的配置:

{{1}}

1 个答案:

答案 0 :(得分:2)

过去,该选项存在一些问题,但在您使用的版本中没有。

--proxy-read-only-backend-addresses不会导致代理将读取请求转发到该选项上指定的后端。

为此,您需要更改读取只读后端地址选项的lua脚本(或编写一个新脚本),并定义所需的行为。

您可以阅读有关此here的更多信息。

希望这能为你提供进一步研究的线索。