Назад | Перейти на главную страницу

Статистика 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 не в супервизоре, и он все еще не работает.

Я пробовал все серверы 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. Эти 2 строки повторяются непрерывно.

Бег netstat -tlnp содержит следующее:

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

Итак, сервер Thrift прослушивает правильный порт.

В этом недостаточно tcpdump конечно, но похоже, что ваша проверка здоровья отправляет SYN пакет и получает RST пакет взамен. (Не стесняйтесь размещать больше в своем вопросе, где вы можете его правильно отформатировать.)

Я подозреваю, что 127.0.0.1:9000 (или любой другой порт) ничего не слушает.

Вы можете проверить это с помощью sudo netstat -tlnp.

Либо серверы Thrift прослушивают разные IP-адреса и / или порты, либо не слушают вообще.