У нас есть большой пул устройств, которые устанавливают сокетные соединения с сервером. Соединения — это соединения TCP-сокетов, попадающие на сервер IP: пара портов из пары IP-портов назначения. В автономном режиме нет проблем с ответом на устройства.
Однако по мере увеличения количества устройств мы были вынуждены ввести балансировщик нагрузки, который затем перераспределял бы трафик на различные приемники в бэкенде. Затем получатели обрабатывают информацию и сохраняют ее в базе данных для дальнейшей обработки.
Однако мы не можем отправить ответ ни одному из устройств, поскольку балансировщик нагрузки (прокси-сервер высокой доступности) транслирует пакеты и меняет IP-адрес при отправке пакетов в пул серверов за брандмауэром.
Как мы гарантируем, что соединения не будут потеряны, а ответы будут отправлены обратно на устройства?
Каков правильный способ балансировки нагрузки TCP/IP-соединений и обеспечения того, чтобы на соединения отвечали?
Любая помощь будет оценена.
В настоящее время мы используем HA Proxy. Мы открыты для перехода на любой другой балансировщик нагрузки с открытым исходным кодом. Нам нужен только круговой балансировщик нагрузки.