我使用HAProxy 1.5-dev21来通过一些只读Postgresql 9.2服务器来平衡PostgreSQL连接。
HAProxy版本1.5实现了一个pgsql-check选项 ,类似于mysql-check。
这是我的这种池的典型HAProxyconfiguration:
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选项,我在postgresql日志中看到这样的消息,每2秒:
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
有没有办法来解决这个问题?
也许我错过了某个configuration选项?
我不确定这是否真的是一个问题。 HAProxy文档说
这是一个基本而有用的testing,它不会产生错误,也不会中止在服务器上的连接。 这个检查和“mysql-check”是一样的。
呵呵另一方面,mysql-check的描述更为详细一点:
该检查包括发送两个MySQL数据包,一个客户端validation数据包和一个QUIT数据包,以正确closuresMySQL会话
你的日志显示了这一点,所以我不认为有什么担心,但你可能想等待pgsql专家或尝试在dba.stackexchange.com