Como soluciono problemas de conexão e tempo limite de soquete com o OpenSearch Service?
Minha aplicação cliente recebe erros de tempo limite de conexão ou de soquete quando tento me conectar ao Amazon OpenSearch Service.
Resolução
Solucionar problemas de tempo limite
Realize as seguintes ações:
- Ative logs lentos para seu índice do OpenSearch Service para identificar as consultas que demoram muito para serem concluídas e que você deve ajustar. Para obter mais informações, consulte Viewing OpenSearch Service slow logs (Visualizando logs lentos do OpenSearch Service).
- Use consultas menores para reduzir a quantidade de dados nas solicitações e o tempo necessário para que elas sejam concluídas.
- Use um tipo maior de instância do Amazon Elastic Compute Cloud (Amazon EC2). Para obter mais informações, consulte Escolha dos tipos de instância e testes e Supported instance types in OpenSearch Service (Tipos de instância compatíveis no Amazon OpenSearch Service).
- Configure mecanismos de recuo exponencial e repetição para que sua aplicação faça novas tentativas das solicitações que atingem o tempo limite.
- Use solicitações em massa em vez de solicitações individuais para reduzir a sobrecarga do cluster.
- Use a ferramenta de depuração da API Profile para obter informações detalhadas sobre o tempo limite. Para mais informações, consulte Profile API no site do OpenSearch.
Solucione erros "Connection timed out"
Se sua conexão atingir o tempo limite, você receberá uma mensagem de erro semelhante ao exemplo a seguir:
"curl: (7) Failed to connect to vpc-acbdefxyz.us-east-1.es.amazonaws.com port 443: Connection timed out
curl: (28) Operation timed out after 1001 milliseconds with 0 out of 0 bytes received"
Com base no tipo de domínio que você usa, realize as seguintes ações de solução de problemas.
Domínios públicos
Os domínios públicos são acessíveis pela internet quando o cliente tem conectividade ou rotas para a internet. Se o cliente não tiver conectividade ou rotas para a internet, você poderá receber a seguinte saída ao executar um comando telnet ou curl:
Trying xyz.xyz.xyz.xyz... telnet: connect to address xyz.xyz.xyz.xyz: Connection timed out
-ou-
* Trying xyz.xyz.xyz.xyz:443... * connect to xyz.xyz.xyz.xyz port 443 failed: Operation timed out * Failed to connect to search-domain-name-someid.aws-region.es.amazonaws.com port 443 after 75243 ms: Couldn't connect to server * Closing connection 0 curl: (28) Failed to connect to search-domain-name-someid.aws-region.es.amazonaws.com port 443 after 75243 ms: Couldn't connect to server
Para solucionar esse problema, certifique-se de que o cliente tenha rotas para a internet e não bloqueie solicitações de saída para o endpoint de pesquisa.
Para testar sua conexão, execute o comando a seguir:
telnet search-domain-name-someid.aws-region.es.amazonaws.com 443
Observação: substitua search-domain-name-someid pelo nome do seu domínio e aws-region pela sua região da AWS.
Exemplo de uma resposta bem-sucedida do endpoint de pesquisa:
Trying xyz.xyz.xyz.xyz... Connected to search-domain-name-someid.aws-region.es.amazonaws.com. Escape character is '^]'.
Domínios dentro de uma VPC
Para domínios do OpenSearch Service que você cria dentro de uma nuvem privada virtual (VPC), cada nó de dados na VPC tem uma interface de rede elástica. As interfaces de rede encaminham o tráfego de rede para seu domínio.
Para verificar a conectividade entre as interfaces de rede e seu domínio, conclua as seguintes etapas:
-
Execute um dos seguintes comandos para obter os endereços IP da interface de rede na sua VPC:
nslookup -q=A vpc-domain-name-id.aws-region.es.amazonaws.com-ou-
dig +short vpc-domain-name-id.aws-region.es.amazonaws.comObservação: substitua domain-name-id pelo seu nome de domínio e aws-region pela sua região.
Na saída, anote o endereço IP da interface de rede. -
Para testar a conexão, execute um dos seguintes comandos para cada endereço IP do nó de dados:
telnet ip-address 443-ou-
curl -v telnet://ip-address:443Observação: substitua ip-address pelo endereço IP da interface de rede.
Exemplo de resposta de tempo limite:Trying xyz.xyz.xyz.xyz...telnet: connect to address xyz.xyz.xyz.xyz: Connection timed outExemplo de resposta bem-sucedida:
Trying xyz.xyz.xyz.xyz...Connected to xyz.xyz.xyz.xyz. Escape character is '^]'. -
Se a conexão expirar, confirme se os grupos de segurança, as tabelas de rotas e a lista de controle de acesso à rede (ACL da rede) da sua VPC permitem acesso ao domínio. Se você conseguir se conectar a algumas interfaces de rede, mas outras atingirem o tempo limite, crie um caso do AWS Support.
Observação: não é possível acessar seus domínios do OpenSearch Service de fora da VPC. Para obter mais informações, consulte Launching your OpenSearch Service domains within a VPC (Lançamento de seus domínios OpenSearch do Amazon Service em uma VPC).
Solucione o erro “HTTP 504 gateway timeout”
O balanceador de carga distribui o tráfego de entrada para o nó de dados. Se a solicitação do OpenSearch Service não retornar uma confirmação dentro do período de tempo limite de inatividade, o balanceador de carga fecha a conexão TCP. Como resultado, você recebe uma mensagem de erro semelhante ao exemplo a seguir:
"error msg: org.elasticsearch.client.ResponseException:
method[POST], host[https: //acbdefjhxyz.eu-central-1.es.amazonaws.com:443],
URI [/eks*/_search?typed_keys=true],status line [HTTP/1.1 504 Gateway Time-out]"
Normalmente, o erro “HTTP 504 Gateway timeout” ocorre quando o OpenSearch Service recebe muitas solicitações simultâneas ou as solicitações são complexas. O erro não indica necessariamente que há um problema no cluster. Para obter mais informações sobre causas e etapas de solução de problemas, consulte HTTP 504: Gateway timeout (HTTP 504: limite de tempo do gateway).
Solucione erros “SocketTimeoutException”
Os erros de tempo limite do soquete geralmente ocorrem quando um cliente envia muitas solicitações ou solicitações complexas. O domínio do OpenSearch Service pode apresentar alto uso de recursos com atrasos nas respostas do cliente. Exemplo de mensagem de erro:
"j.net.SocketTimeoutException: 30,000 milliseconds timeout on connection http-outgoing-5083 [ACTIVE]
java.net.SocketTimeoutException: Read timed out
Caused by: java.net.SocketTimeoutException: Read timed out"
Para solucionar esse problema, realize as seguintes ações:
- Ajuste os valores de tempo limite do seu cluster. Para obter mais informações, consulte Search settings (Configurações de pesquisa) no site do OpenSearch.
- Otimize suas consultas.
- Escale seu domínio do OpenSearch Service para atender aos requisitos da solicitação.
Informações relacionadas
Solução de problemas do OpenSearch Service
Como solucionar picos de latência de pesquisa no meu cluster do Amazon OpenSearch Service?
Como melhorar o desempenho de indexação em meu cluster do Amazon OpenSearch Service?
Analyzing OpenSearch Service slow logs using Amazon CloudWatch Logs streaming and Kibana (Analisando dos logs lentos do OpenSearch Service usando o fluxo do Amazon CloudWatch e Kibana)
- Tópicos
- Analytics
- Idioma
- Português

Conteúdo relevante
feita há 3 meses