View a markdown version of this page

Lide com a substituição do host e a paralisação da conexão - Amazon Neptune

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Lide com a substituição do host e a paralisação da conexão

Quando o Neptune substitui um host (por exemplo, durante manutenção ou failover), as conexões existentes com esse host se tornam inválidas. Em ambientes em contêineres, isso pode paralisar todos os encadeamentos em um contêiner se o cliente não lidar com a substituição normalmente.

Use as versões atuais do cliente

Se você usa a linguagem de consulta Gremlin, use uma versão de TinkerPop driver compatível com a versão do mecanismo Neptune (consulte Acessar o grafo do Neptune com o Gremlin a tabela de compatibilidade). Se você usa o driver Java, considere neptune-gremlin-client — um invólucro ao redor do driver TinkerPop Java que adiciona recursos de gerenciamento de conexão, como verificação de integridade de terminais e tratamento de failover. Ele segue as mesmas regras de compatibilidade de versão do TinkerPop driver subjacente.

Use a neptune-gremlin-client versão 3.x (ou, no mínimo, a versão 2.0.7), dependendo do que sua versão do Neptune permite. Essas versões mais recentes melhoram a resiliência e o manuseio da conexão.

Para usuários do OpenCypher com o driver Neo4j, feche e recrie o Driver objeto ao detectar uma falha de conexão durante o failover. O Neptune suporta as versões 1 a 4.0 do protocolo Bolt. Para obter mais informações, consulte Práticas recomendadas para o Neptune ao usar openCypher e Bolt.

Use endpoints de cluster ou leitor

Não se conecte diretamente aos endpoints da instância. Use o endpoint do cluster para gravações e o endpoint do leitor para leituras. Se você precisar usar endpoints de instância comneptune-gremlin-client, ative a filtragem de verificação de integridade do endpoint por meio da API. /status

Configure sondas de vivacidade com tolerância

Defina sua sonda de atividade do Kubernetes failureThreshold para pelo menos 30 com um período de 10 segundos (300 segundos no total). Isso evita que o Kubernetes reinicie os pods durante a janela de aproximadamente 5 minutos em que o Neptune está concluindo a substituição do host.

Implemente uma nova tentativa com recuo

Uma única solicitação com falha durante a substituição do host não deve travar o contêiner. Implemente a lógica de repetição com recuo exponencial em caso de falhas de conexão para que erros transitórios durante a substituição sejam resolvidos sem intervenção. Para obter orientação sobre exceções que podem ser repetidas, consulte Exceções de transações do Neptune.