HAProxy 统计数据显示所有 Thrift 服务器均已关闭

HAProxy 统计数据显示所有 Thrift 服务器均已关闭

我正在尝试设置 HAProxy 来平衡一组 Thrift 服务器的负载。出于某种原因,HAProxy 统计页面显示所有服务器都已关闭。

这是我正在尝试的当前 HAProxy 配置。

global
    log 127.0.0.1   local0
    log 127.0.0.1   local1 notice
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     60000
    user        haproxy
    group       haproxy

defaults
    log     global
    option  dontlognull
    option redispatch
    retries 3
    maxconn 2000
    contimeout      5000
    clitimeout      50000
    srvtimeout      50000

listen stats :5000
    mode http
    stats enable
    stats hide-version
    stats realm Haproxy\ Statistics
    stats uri /
    stats auth user:pass

listen metrix :5002
    mode tcp
    option tcplog
    balance leastconn
    server m1 127.0.0.1:9000 check
    server m2 127.0.0.1:9001 check
    server m3 127.0.0.1:9002 check
    server m4 127.0.0.1:9003 check
    server m5 127.0.0.1:9004 check
    server m6 127.0.0.1:9005 check
    server m7 127.0.0.1:9006 check
    server m8 127.0.0.1:9007 check

还有一件事。Thrift 服务器在 Supervisor 中运行,我注意到有些奇怪。但我尝试过只运行 Thrift 服务器而不是在 Supervisor 中运行,但仍然不起作用。

我已经尝试了所有的 Thrift 服务器(TSimpleServer、TNonBlockingServer、TThreadedServer),它们都有同样的问题。

更新

跑步tcpdump port 9000

15:12:31.878502 IP ip-00.00.00.00.ec2.internal.cslistener > ip-11.11.11.11.ec2.internal.36206: Flags [R.], seq 0, ack 3433673377, win 0, length 0
15:12:33.878425 IP ip-11.11.11.11.ec2.internal.36207 > ip-00.00.00.00.ec2.internal.cslistener: Flags [S], seq 3459211721, win 5840, options [mss 1460,sackOK,TS val 440815982 ecr 0,nop,wscale 10], length 0

00.00.00.00运行 Thrift 服务器的服务器在哪里11.11.11.11,运行 HAProxy 的服务器在哪里。这两行不断重复。

跑步netstat -tlnp包含以下内容:

tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      19472/python

因此 Thrift 服务器正在监听正确的端口。

答案1

虽然这还不足以tcpdump确定,但看起来您的健康检查正在发送一个SYN数据包,并且正在收到一个RST数据包。(您可以在实际问题中发布更多信息,以便正确格式化。)

我怀疑没有任何东西在监听 127.0.0.1:9000(或任何其他端口)。

您可以使用 来检查这一点sudo netstat -tlnp

Thrift 服务器要么正在监听不同的 IP 地址和/或端口,要么根本没有监听。

相关内容