load_balancing
- Random (por padrão)
- Nearest hostname
- Hostname levenshtein distance
- Hostname longest common prefix
- Hostname longest common suffix
- In order
- First or random
- Round robin
Random (padrão)
Hostname mais próximo
Distância de Levenshtein do hostname
nearest_hostname, mas compara o hostname com base na distância de Levenshtein. Por exemplo:
Maior prefixo comum do hostname
nearest_hostname, mas dá preferência à réplica cujo hostname compartilha o prefixo comum mais longo com o hostname local (quanto maior o prefixo comum, maior a prioridade). Diferentemente de nearest_hostname, que conta os caracteres diferentes posição por posição, esta estratégia não se confunde com hostnames cujos segmentos numéricos têm comprimentos diferentes. Por exemplo, para o hostname local sfe301:
sfe10101 é preferido porque compartilha o prefixo comum mais longo (sfe, comprimento 3) com sfe301.
Réplicas com o mesmo comprimento de prefixo comum são escolhidas aleatoriamente. Em particular, quando nenhuma réplica compartilha nenhum prefixo com o hostname local (todos os comprimentos de prefixo comum são zero), essa estratégia se comporta exatamente como random.
Sufixo comum mais longo do hostname
hostname_longest_common_prefix, mas compara o sufixo comum mais longo em vez do prefixo. Isso é útil quando a identidade do data center é codificada como sufixo do hostname. Por exemplo, para o hostname local et46gtghn.qc.localdomain:
ab999.qc.localdomain é preferido porque compartilha o sufixo comum mais longo (.qc.localdomain, comprimento 15) com et46gtghn.qc.localdomain.
Réplicas com o mesmo comprimento de sufixo comum são escolhidas aleatoriamente. Em particular, quando nenhuma réplica compartilha qualquer sufixo com o hostname local (todos os comprimentos de sufixo comum são zero), essa estratégia se comporta exatamente como random.
Na ordem definida
Primeiro ou aleatório
first_or_random resolve o problema do algoritmo in_order. Com in_order, se uma réplica ficar indisponível, a próxima recebe uma carga dobrada, enquanto as demais réplicas continuam lidando com o volume usual de tráfego. Ao usar o algoritmo first_or_random, a carga é distribuída de forma uniforme entre as réplicas que ainda estão disponíveis.
É possível definir explicitamente qual é a primeira réplica usando a configuração load_balancing_first_offset. Isso dá mais controle para redistribuir a carga das consultas entre as réplicas.
Round Robin
round_robin são levadas em conta).