如何解决 Amazon OpenSearch Service 中发生的 HTTP 503 服务不可用错误?

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

我查询 Amazon OpenSearch Service(Amazon Elasticsearch Service 的后继者)域时,收到 HTTP 503 服务不可用错误。如何解决此错误?

简短描述

负载均衡器位于每个 OpenSearch Service 域的前面。负载均衡器将传入流量分配到您的数据节点。HTTP 503 错误表示集群中的一个或多个数据节点已过载。当节点被昂贵的查询或传入流量过载时,节点会没有足够的容量来处理任何其他传入请求。

注意:您可以使用 Amazon CloudWatch 的 RequestCount 指标来追踪 HTTP 响应代码。

解决方案

使用以下方法之一来解决 HTTP 503 错误:

预置更多计算资源

降低查询的资源使用率

  • 确认您在遵照分区和集群架构的最佳实践。设计拙劣的集群无法使用所有的可用资源。当一些节点处于闲置状态时,另一些节点可能会过载。OpenSearch Service 无法从过载的节点中获取文档。有关分区和集群最佳实践的更多信息,请参阅 开始使用 Amazon OpenSearch Service:我需要多少分区?
  • 减少至域的并发请求数量。
  • 缩小您的查询范围。例如,如果您针对特定时间范围运行查询,请缩小日期范围。您还可以通过在 OpenSearch 控制面板中配置索引模式来筛选结果。
  • 避免对非常大的索引执行 select * 查询相反,使用筛选条件查询部分索引并且尽可能少地搜索字段
  • 重新建立索引并减少分区数量。您的集群中包含的分区越多,越有可能导致 Courier 提取错误。由于每个分区均有自己的资源分配和开销,因此,大量分区会对集群施加压力。要降低分区计数,请参阅我的 Amazon OpenSearch Service 域为什么卡在“正在处理”状态?