Для каждого запроса, который клиент делает через балансировщик нагрузки, балансировщик нагрузки поддерживает два TCP-соединения. Одно соединение с клиентом, а другое - с серверным экземпляром. GCE LoadBalancer создает множество TCP-соединений с моим серверным экземпляром, как я могу это контролировать?
Документы GCP говорят
"Трафик от балансировщика нагрузки к вашим экземплярам имеет IP-адрес в диапазоне 130.211.0.0/22. При просмотре журналов на экземплярах с балансировкой нагрузки вы не увидите исходный адрес исходного клиента. Вместо этого вы увидите источник адреса из этого диапазона ".
Это означает, что в идеале LB может открывать не более 2 pow 10 * 2 pow 16 = 67108864 TCP-соединений с серверным экземпляром. Здесь 2 pow 10 для диапазона IP 2 pow 16 для диапазона портов на IP.
Как я могу управлять GCE LB для создания макс. N TCP-соединений с моим внутренним экземпляром?
По ссылке Ильи Закревского, этот вопрос был задан в Stack Overflow, и Илья ответил, как показано ниже:
В настоящее время балансировщик нагрузки HTTP не предоставляет элементы управления ограничением количества подключений. Лимит подключения серверной службы ограничен 64 КБ на серверную часть. В действительности вы можете ожидать около 2-3 тысяч активных соединений на бэкэнд, в зависимости от схемы загрузки.
Хотя я бы не стал так сильно беспокоиться о 2-3k подключениях, если вам абсолютно необходимо избегать такого большого количества одновременных подключений, рассмотрите возможность реализации динамической проверки работоспособности и возврата нездорового состояния, когда количество подключений превышает определенный порог. Неработоспособный статус не позволит инстансу серверной части получить новые соединения, но вам нужно будет выяснить, как справиться с избыточной нагрузкой, возможно, путем автомасштабирования вашей серверной службы.