如何防止 Amazon OpenSearch Service 中出现 HTTP 504 网关超时错误?

上次更新日期:2021 年 7 月 30 日

我正在尝试解决 Amazon OpenSearch Service(Amazon Elasticsearch Service 的后继者)中的 504 网关超时错误。我该如何操作?

简短描述

负载均衡器位于每个 OpenSearch Service 域的前面。负载均衡器将传入流量分配到您的数据节点。如果 OpenSearch Service 请求未完成并在空闲的超时期限内返回确认,负载均衡器将关闭 TCP 连接。因此,您将收到 HTTP 504 gateway timeout(HTTP 504 网关超时)错误。HTTP 504 gateway timeout(HTTP 504 网关超时)错误并不一定表示集群出现问题,它仅仅意味着请求无法在空闲超时期限内完成。

当您同时发送过多请求或发送复杂请求时,通常会发生网关超时错误。在这两种情况下,结果都是相同的:OpenSearch Service 无法在空闲超时期限内完成请求。

解决方法

使用以下一种或多种方法解决 HTTP 504 gateway timeout(HTTP 504 网关超时)错误:

  • 为您的 OpenSearch Service 索引启用慢日志,然后指定日志记录阈值。慢日志可以帮助您确定特定查询是否需要花费很长时间才能完成。如果是,调整查询以解决 504 错误。有关更多信息,请参阅查看 Amazon OpenSearch Service 慢速日志
  • 减少 OpenSearch Service 必须为请求查询的数据量。这可以减少请求完成所需的时间。
  • 切换到更大的实例类型。有关更多信息,请参阅选择实例类型和测试
  • 在应用程序中配置指数退避和重试机制,以便再次发送超时请求。
  • 使用批量请求而不是单个请求。这可以减少集群的每请求开销。