Как справиться с кратковременным истощением портов в Envoy
Одна из проблем с обратными прокси-серверами, обрабатывающими несколько запросов от имени клиентов, заключается в том, что через некоторое время при большой нагрузке количество исходящих соединений от узла посланника к внутренним узлам исчерпает временные порты.
Предполагая, что мы назначили несколько IP-адресов / имен хостов для узла посланника, есть ли способ сообщить посланнику, что он использует эти IP-адреса / имена хостов в циклическом режиме при подключении к бэкэндам?
Мультиплексирование TCP - это метод, используемый в основном балансировщиками нагрузки и контроллерами доставки приложений (но также и некоторыми автономными решениями для ускорения веб-приложений), который позволяет устройству повторно использовать существующие TCP-соединения. Это похоже на способ, которым работают постоянные соединения HTTP 1.1, в котором одно соединение HTTP может использоваться для получения нескольких объектов, тем самым снижая влияние накладных расходов TCP на производительность приложения.
Мультиплексирование TCP позволяет делать то же самое для приложений на основе TCP (обычно HTTP / web), за исключением того, что вместо повторного использования, ограниченного только одним клиентом, соединения можно повторно использовать для многих клиентов, что приводит к гораздо большей эффективности веб-серверов и более быстрые приложения.
Еще одно хорошее объяснение мультиплексирования TCP можно найти здесь.
Другой вариант - добавить больше экземпляров прокси в пул за балансировщиком сетевой нагрузки L4 и установить разумное значение лимита подключений для одного экземпляра. Каждый прокси без проблем будет нести определенную нагрузку. Если вам нужно обрабатывать периодические всплески нагрузки, вы можете установить стратегию автоматического масштабирования для пула прокси.