Quero solucionar o erro READONLY que recebo após um failover em meu cluster autoprojetado do Amazon ElastiCache for Redis.
Resumo
Se o nó primário passar para os nós de réplica em seu cluster autoprojetado pelo ElastiCache, o nó de réplica se tornará o nó primário. Isso permite que as solicitações recebidas sejam atendidas. O erro READONLY ocorre quando você usa um endpoint de nó em vez do endpoint primário do cluster em seu aplicativo. Além disso, esse erro ocorre quando o cache de DNS no aplicativo encaminha o tráfego para o nó primário antigo.
Resolução
Para solucionar o erro READONLY em seu cluster autoprojetado do ElastiCache para Redis que tem o modo de cluster desativado, conclua as seguintes etapas:
Verifique se o modo de cluster está desativado
Abra o console do ElastiCache e selecione clusters do Redis. Verifique se o Modo de cluster do cluster está desativado. Para obter mais informações, consulte How do I resolve Redis client read requests that are redirected to the primary node of a shard instead of a replica node in ElastiCache for Redis?
Verifique o endpoint
Certifique-se de que o endpoint primário seja usado e não o endpoint do nó. Para verificar se os comandos de gravação vão para o nó primário, use um dos seguintes métodos:
Use redis-cli
-
Use redis-cli no endpoint primário para se conectar ao cluster.
-
Defina uma chave e, em seguida, leia a chave.
Exemplo:
set key1 "hello"
OK
-
Confirme se a chave foi configurada corretamente.
Exemplo:
get key1
"hello"
Verifique a configuração de DNS
Para evitar problemas de cache de DNS, ative a lógica de repetição em seu aplicativo. Certifique-se de seguir as diretrizes da biblioteca cliente Redis que você usa.
Verifique os comandos recebidos
Para verificar os comandos recebidos, use o comando MONITOR. Para obter mais informações, consulte MONITOR no site do Redis. Para ativar o MONITOR, conecte-se ao cluster com o redis-cli. O comando MONITOR lista todos os comandos recebidos no nó do cluster.
Observação: o comando MONITOR é um comando caro em termos de recursos e pode diminuir consideravelmente o desempenho do nó. Use esse comando como a última opção para solução de problemas.