HAProxy pgsql 检查错误

HAProxy pgsql 检查错误

我使用 HAProxy 1.5-dev21 来平衡一些只读 Postgresql 9.2 服务器上的 PostgreSQL 连接负载。

HAProxy 1.5 版实现了pgsql-check 选项,类似于mysql-check。

以下是针对此类池的典型 HAProxy 配置:

listen pgsql_pool 0.0.0.0:10001
        mode tcp
        option pgsql-check user postgres
        balance roundrobin
        server slave1 10.0.0.1:5432 check
        server slave2 10.0.0.2:5432 check

这有效,我的意思是 HAProxy 检测到 slave1/slave2 已启动,并且我可以通过端口 10001 正常连接到 PG,但是由于 pgsql-check 选项,我每 2 秒就会在 postgresql 日志中看到这样的消息:

2014-01-29 17:37:33 CET [17170] postgres postgres (10.0.0.10(56706)) LOG:  could not receive data from client: Connection reset by peer
2014-01-29 17:37:35 CET [17173] postgres postgres (10.0.0.10(56707)) LOG:  could not receive data from client: Connection reset by peer

有没有办法来解决这个问题?

也许我遗漏了某个地方的某些配置选项?

答案1

我不确定这是否真的是个问题。HAProxy 文档说

这是一个基本但有用的测试,它不会在服务器上产生错误或中止连接。此检查与“mysql-check”相同。

哦,另一方面,mysql-check 的描述更详细一些:

检查包括发送两个 MySQL 数据包、一个客户端身份验证数据包和一个 QUIT 数据包,以正确关闭 MySQL 会话

您的日志显示了这一点,所以我认为没有什么可担心的,但您可能需要等待 pgsql 专家或尝试dba.stackexchange.com

相关内容