Split Clients#
O módulo gera variáveis para testes A/B, lançamentos canário
e outros cenários que roteiam uma porcentagem específica de clientes para um
servidor ou configuração enquanto direcionam o restante para outro lugar. Cria uma $variable fazendo hash da string;
variáveis na string são substituídas,
o resultado é transformado em hash,
e o valor do hash é usado para selecionar o valor string da $variable. A função hash usa
MurmurHash2
(32-bit),
e toda sua faixa de valores
(0 a 4294967295)
é mapeada para buckets em ordem de aparição;
as porcentagens determinam o tamanho dos buckets.
Um curinga ( Exemplo: Aqui, após a substituição na string valores de 0 a 21474835 (0,5%) produzem valores de 21474836 a 107374180 (2%) produzem valores de 107374181 a 4294967295 (todos os outros) produzem Exemplo de Configuração#
stream {
# ...
split_clients "${remote_addr}AAA" $upstream {
0.5% feature_test1;
2.0% feature_test2;
* production;
}
server {
# ...
proxy_pass $upstream;
}
}
Diretivas#
split_clients#
*
) pode aparecer no final;
hashes que não se encaixam em outros buckets são mapeados para seu valor atribuído.split_clients "${remote_addr}AAA" $variant {
0.5% .one;
2.0% .two;
* "";
}
$remote_addrAAA
,
os valores de hash são distribuídos da seguinte forma:.one
.two
""
(uma string vazia)