Балансировка нагрузки TCP в HAProxy с постоянными соединениями TCP - PullRequest
0 голосов
/ 25 мая 2018

В настоящее время у меня есть один клиент (компонент), имеющий одно постоянное TCP-соединение с сервером (другим компонентом), и сообщения обмениваются асинхронно.Я хотел иметь балансировщик нагрузки (желательно HAProxy), где соединение ч / б клиента и балансировщик нагрузки, а также ч / б балансировщик нагрузки и несколько серверов в качестве постоянного TCP-соединения.

Я знаю, что HAProxy можно легко настроить для балансировки нагрузки TCP, но я хотел бы знать, поддерживает ли он постоянные соединения из коробки.Было бы здорово помочь, если бы кто-то указал мне правильное направление.Спасибо.

Ответы [ 2 ]

0 голосов
/ 19 августа 2019

Это невозможно.TCP является протоколом с состоянием.Даже если мы делаем это с помощью некоторых приемов, таких как зеркало iptables, целевой хост-сервер будет отбрасывать пакеты, для которых у него нет рукопожатия или предварительных пакетов.

Вместо этого вам следует рассмотреть UDP.

0 голосов
/ 25 мая 2018

Да, он поддерживает постоянные соединения TCP прямо из коробки.Простая реализация в haproxy выглядит следующим образом

listen tcpProxy 0.0.0.0:7000 
    mode tcp 
    balance source
    server tcp1 ip1:port check maxconn 10000
    server tcp2 ip2:port check maxconn 10000

Надеюсь, это поможет

...