【问题标题】:MySQL-proxy load-balancer issues [closed]MySQL代理负载平衡器问题[关闭]
【发布时间】:2014-05-04 16:39:13
【问题描述】:

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

M1 和 M2 之间存在 MySQL 复制。 M1 是主人,M2 是奴隶。所有请求什么类型是“写”,正确转发到 M1 并立即将这条记录从M1 复制到M2。

但是如果请求类型是“读取”,代理不能转发到M2,只能转发到M1。我用tcpdump检查了这些数据包,我看到M1收到的每个数据包。使用 telnet 和 MySQL 命令从代理到 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

【问题讨论】:

  • 好问题。我以前也从未听说过 MySQL 代理,所以更好。但是这个问题更像是一个服务器问题,所以它属于服务器故障或数据库管理员堆栈交换站点。 dba.stackexchange.com

标签: mysql mysql-proxy


【解决方案1】:

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

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

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

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

希望这能给你一些进一步研究的线索。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    相关资源
    最近更新 更多