

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á.

# Gerencie pools de conexão e ciclo de vida em ambientes em contêineres
<a name="best-practices-ecs-eks-connections"></a>

Gerenciar conexões com o Neptune de forma eficaz é essencial em ambientes em contêineres em que os contêineres (pods no Kubernetes) iniciam, param e escalam com frequência. O Neptune impõe vários limites de conexão: WebSocket 
+ [Cada tipo de instância tem um número máximo de conexões simultâneas WebSocket ](https://docs.aws.amazon.com/neptune/latest/userguide/limits.html#limits-websockets)
+ As conexões inativas são fechadas após 20 a 25 minutos de inatividade
+ [Com a autenticação do IAM, as conexões são fechadas à força após 10 dias, independentemente da atividade (consulte WebSocket os limites de conexão)](https://docs.aws.amazon.com/neptune/latest/userguide/limits.html#limits-websockets)

Alguns drivers suportam pulsações periódicas de manutenção de atividade para evitar desconexões inativas. Por exemplo, o driver Gremlin Java `keepAliveInterval` envia um ping periódico para o servidor. Consulte as opções específicas de configuração do driver para determinar quais configurações de keep-alive estão disponíveis e como elas interagem com o tempo limite de inatividade do Neptune.

Entender esses limites ajuda você a projetar um tratamento de conexão que funcione bem com padrões de orquestração de contêineres, como implantações contínuas, escalonamento automático e reciclagem de contêineres. Para obter orientações gerais sobre gerenciamento de conexões com o driver Java Gremlin, consulte e. [Fechar o cliente para evitar o limite de conexões](best-practices-gremlin-java-close-connections.md) [Criar uma conexão após o failover](best-practices-gremlin-java-new-connection.md)

**Fechar conexões no desligamento do contêiner**

Implemente um desligamento normal adicionando um `SIGTERM` manipulador que fecha seu cliente gráfico antes que o contêiner saia. Por exemplo, chame Gremlin Java's`cluster.close()`, Gremlin's em `driverRemoteConnection.close()` Go ou Python ou Bolt's para o driver Neo4j. `driver.close()` No Kubernetes, use um `preStop` gancho para drenar as conexões antes do `SIGTERM` envio, especialmente durante atualizações contínuas.

**nota**  
O Docker e o Amazon ECS entregam somente `SIGTERM` para o PID 1 no contêiner. Use o formulário exec em seu Dockerfile (por exemplo, `ENTRYPOINT ["java", "-jar", "app.jar"]` não`ENTRYPOINT java -jar app.jar`) ou um processo de inicialização, como `tini` para garantir que seu aplicativo receba o sinal.

**Use uma única instância de cliente por contêiner**

Criar várias `neo4j.Driver` instâncias do Gremlin `DriverRemoteConnection` ou do Bolt no mesmo contêiner multiplica o uso da conexão. Compartilhe uma única instância de cliente em todos os segmentos no contêiner. Os objetos do cliente são thread-safe.

**Tamanho dos pools de conexão em relação à sua frota**

Defina `maxConnectionPoolSize` para que o total de conexões em todos os contêineres não exceda o limite de conexão da instância Neptune. Por exemplo, se você executar 20 contêineres com 8 threads cada, calcule o tamanho do pool por contêiner para que 20 × o tamanho do pool permaneça dentro do [limite de instância do seu tipo de instância](https://docs.aws.amazon.com/neptune/latest/userguide/limits.html#limits-websockets). Para obter mais informações sobre como configurar os tamanhos do pool de conexões, consulte[Definir `maxInProcessPerConnection` e `maxSimultaneousUsagePerConnection` como o mesmo valor](best-practices-gremlin-java-maxes.md).

**Definir um tempo limite de espera da conexão**

No driver Java Gremlin, configure `maxWaitForConnection` com um valor razoável, como 5 a 10 segundos. O padrão geralmente é infinito ou muito longo, o que faz com que os encadeamentos travem quando o pool está esgotado, em vez de falharem rapidamente com um erro claro. Nem todos os drivers de idioma oferecem suporte a essa configuração. Consulte a documentação do driver para obter a opção de configuração equivalente.