Подключение нескольких серверов обработки входящего трафика позволяет распределить нагрузку с целью оптимизации использования ресурсов и сокращения времени обслуживания запросов.
Для равномерного распределения нагрузки вам нужно указать вес сервера в группе и максимальное количество неудачных попыток соединения с сервером. По умолчанию значения этих параметров равны 1. PT AF выбирает сервер, на который нужно передать клиентский запрос, по алгоритму циклического распределения (round-robin), то есть перебирает серверы по кругу согласно указанному весу. Например, если в группу входят три сервера и вес сервера server1 равен 3, вес server2 равен 1 и вес server3 равен 2, то PT AF передает запрос первых трех клиентов к серверу server1, четвертого — к server2, а пятого и шестого — к server3, после чего передача запросов продолжится заново по кругу. Если PT AF не удается подключиться к серверу и достигнуто максимальное количество неудачных попыток соединения, то сервер считается неработающим. Нулевое значение отключает учет попыток соединения, и обращения к серверу направляются вне зависимости от наличия ответов.
Алгоритм циклического распределения не учитывает количество соединений, которые сервер обслуживает в данный момент. Вместо алгоритма циклического распределения трафика вы можете выбрать алгоритм минимального соединения (least connections), который учитывает вес серверов, количество установленных соединений с каждым из серверов группы и передает новое соединение на сервер с наименьшим количеством активных соединений. При этом предполагается, что все соединения генерируют одинаковую нагрузку на сервер. Если подходит сразу несколько серверов, они выбираются циклически с учетом их веса.
Также вы можете выбрать алгоритм распределения по источнику (hash-based), который использует хеш-сумму, созданную на основе IP-адреса отправителя и получателя. PT AF направляет соединение к определенному серверу. В качестве ключа для хеширования используются первые три октета IPv4-адреса клиента или IPv6-адрес клиента целиком. Метод гарантирует, что запросы одного и того же клиента будут всегда передаваться на один и тот же сервер. Если же этот сервер будет считаться недоступным, то запросы этого клиента будут передаваться на другой сервер. С большой долей вероятности это также будет один и тот же сервер.