В журнале haproxy я вижу флаг cD. Балансировщик находится перед узлами rabbitmq. Когда nagios проверяет узлы, журнал выглядит так: Флаг SD
[10/Nov/2014:14:48:01.190] from NAGIOS IP to Rabbitmq:5672 rabbitmq_01 SD req_size=6 resp_size=0
И когда клиент подключается, журнал выглядит так: флаг cD. Клиент подключается от tomcat.
[10/Nov/2014:14:43:52.692] from Client to Rabbitmq:5672 rabbitmq_-02 cD req_size=853 resp_size=686
Если я изменю тайм-аут с 200 на 300, тогда сообщение в журнале будет выглядеть так:
[10/Nov/2014:15:25:42.576] from Client to Rabbitmq:5672 rabbitmq_02 SD req_size=937 resp_size=681
Не могу понять, как исправить таймауты и избежать этой проблемы с флагами SD и CD.
Haproxy conf выглядит так
defaults
log global
mode tcp
option tcplog
option dontlognull
option redispatch
retries 3
timeout connect 5000
timeout client 200s
timeout server 200s
frontend localnodes
bind *:5673
mode tcp
option tcplog
log global
log-format [%t]\ from\ %ci:%cp\ to\ %si:%sp\
%s\ %ts\ req_size=%U\ resp_size=%B
default_backend rabbit
backend rabbit
mode tcp
log global
option tcplog
option tcpka
balance roundrobin
server rabbitmq_01 :5672 check
server rabbitmq_02 :5672 check
Я также видел случайные проблемы с состоянием завершения SD-- в журналах haproxy при попытке загрузить большой файл, который обслуживается apache tomcat.
Проблема была устранена путем увеличения connectionTimeout с 5 до 30 секунд в конфигурации разъема tomcat.
Возможно, у rabbitmq тоже есть похожие настройки.