O recurso de afinidade do Load Balancer mapeia um endereço IP do cliente para um servidor
backend. A afinidade é estabelecida quando o endereço IP de destino do pacote
corresponder ao cluster, a porta de destino corresponder à porta do Load Balancer
e o endereço IP de origem corresponder.
Sobre Esta Tarefa
Quando a afinidade é estabelecida, pacotes subsequentes são enviados para o mesmo
servidor backend. Quando a afinidade é quebrada porque um servidor está inativo ou foi
removido, toda a afinidade e, dessa forma, as conexões com esse servidor são quebradas. Além disso,
não há nenhuma informações de "conexão" relatada na linha de comandos ou nos clientes da GUI. Apenas o número de registros de afinidade ativa são usados.
Essa abordagem possui
as vantagens de fornecer uma afinidade rígida e de ser mais eficiente para o
Load Balancer. Esse método de afinidade que é usado diminui o uso de memória e de
CPU conforme comparado com o encaminhamento de conexão.
Evitar Problemas: A remoção de um registro de afinidade também quebra as conexões, assim, quando você migrar do Load Balancer para IPv4 para o Load Balancer para
IPv4 e IPv6, o valor que você configurou como a definição máxima para staletimeout deverá ser utilizado como o valor para a configuração stickytime para Load Balancer para IPv4 e IPv6.
gotcha
Escolha um algoritmo de seleção com base em como o Load Balancer deve rotear conexões. É possível escolher os seguintes algoritmos de seleção:
- affinity
- Especifica que quando um pacote subsequente chega a partir do mesmo cliente que o pacote anterior, a solicitação será direcionada ao mesmo servidor como o pacote anterior. Ao longo do tempo, o cliente concluirá o envio de pacotes e o registro de afinidade ficará ausente.
Cada registro de afinidade dura a quantidade de tempo especificada no valor stickytime, que é dado em segundos:
- Se uma conexão subsequente é recebida dentro do intervalo de tempo para o valor de stickytime, o registro de afinidade permanecerá válido e a solicitação irá para o mesmo servidor.
- Se uma conexão subsequente não for recebida dentro do intervalo de tempo para o valor de stickytime, o registro será limpo. O Load Balancer selecionará um novo servidor para uma conexão recebida após o valor de stickytime expirar.
É possível utilizar o comando para colocar em modo quiesce para colocar um servidor off-line.
O servidor será desativado apenas depois que o valor de staletimeout expirar.
Esse é um exemplo do comando para colocar em modo quiesce:dscontrol manager quiesce server
- connection
- Especifica que quando uma nova conexão TCP for recebida de um cliente,
o Load Balancer escolherá o servidor nesse momento no tempo e encaminhará os
pacotes para ele. Se uma conexão subsequente vier a partir do mesmo cliente,
o Load Balancer tratará essa conexão como uma nova conexão não relacionada e
escolherá um servidor adequado nesse momento.
- connection+affinity
- Especifica que quando um pacote chegar a partir de uma conexão existente,
ele será encaminhado ao servidor que foi escolhido para essa conexão.
Se o pacote não pertencer a uma conexão existente, mas o pacote chegar a partir do
mesmo cliente, então o Load Balancer seleciona o mesmo servidor que foi escolhido para a
conexão anterior.
O comportamento para o algoritmo connection+affinity é semelhante ao
algoritmo de afinidade, mas o valor de tempo limite para afinidade é calculado a partir do
início de cada conexão. Isso significa que se o tempo entre o início de duas conexões do mesmo cliente for menor que o valor de stickytime, então ambas as conexões serão encaminhadas para o mesmo servidor.