Estou tentando configurar um balanceador de carga interno do google TCP. O grupo de instâncias por trás desse lb consiste em processos de servidor-redis que estão escutando na porta 6379. Fora dessas instâncias de redis, apenas um deles é o mestre.
Problema : Adicione uma verificação de integridade TCP para detectar o mestre de redis e faça lb desviar todo o tráfego para apenas mestre de redis.
Abordagem :
Adicionada uma verificação de integridade TCP para a porta 6379.
Para enviar o comando role
para o processo redis-server e analisar a resposta, estou usando os parâmetros opcionais fornecidos na verificação de integridade. Por favor, verifique a imagem aqui .
Resultado : a verificação de integridade está falhando para todos. Se eu remover os parâmetros de solicitação / resposta opcionais, a verificação de integridade começa a passar para todos.
Depuração :
role
, ele envia a resposta começando com *3
(para mestre) e *5
(para escravo) conforme o esperado. nc -l -p 6379
para verificar exatamente o que está sendo recebido no lado da instância na verificação de integridade. Ele recebe role\r\n
. MONITOR
no redis-cli, para ver o log dos comandos recebidos por este processo. Aqui não há log de role
.
Isso significa que a instância está recebendo os dados ( role\r\n
) sobre o tcp, mas não é recebida pelo processo redis-cli (conforme o comando MONITOR
) ou algo mais está acontecendo. Por favor ajude.