本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
专用主节点
Amazon Elasticsearch Service 使用专用主节点 来提高集群稳定性。专用主节点执行群集管理任务,但不保留数据也不响应数据上传请求。此群集管理任务的卸载可增加您的域的稳定性。与所有其他节点类型一样,您按小时为每个专用主节点支付费用。
我们建议您向每个生产 域添加三个Amazon ES专用主节点。请勿选择偶数数量的专用主节点。
-
一个专用主节点意味着您在发生故障时没有备份。
-
两个专用主节点意味着您的群集没有必需的仲裁节点数,无法在发生故障时选择新的主节点。
仲裁节点数为专用主节点数/2 + 1(向下舍入到最近的整数),当您创建域时,Amazon ES 将其设置为
discovery.zen.minimum_master_nodes
。在这种情况下,2/2 + 1 = 2。由于一个专用主节点发生了故障且仅存在一个备份,因此集群没有达到仲裁节点数且无法选择新的主节点。
-
三个专用主节点(建议的数量)可在主节点发生故障时提供两个备份节点和必要的仲裁节点数 (2) 来选择新主节点。
-
四个专用主节点不比三个好,而且如果您使用多个可用区,则可能会导致问题。
-
如果一个主节点发生故障,您有选择新主节点所需的仲裁节点数 (3)。如果两个节点发生故障,则您会失去该仲裁节点数,正如您具有三个专用主节点时一样。
-
在三个可用区配置中,两个 AZs 有一个专用主节点,一个 AZ 有两个主节点。如果该可用区遇到中断,则剩余两个 AZs 将没有必要的仲裁节点数 (3) 来选择新的主节点。
-
-
拥有五个专用主节点与拥有三个节点效果一样,并且允许您在维持仲裁节点数的同时丢失两个节点。但是,由于在任何给定时间只有一个专用主节点处于活动状态,因此此配置意味着需要为四个空闲节点付费。许多用户发现,这一级别的故障转移保护有些过剩。
如果一个集群具有偶数个符合主节点条件的节点,则 Elasticsearch 版本 7.x 及更高版本将忽略一个节点,以便投票配置始终为奇数。在此情况下,4 个专用主节点实质上相当于 3 个(2 比 1)。
如果您的集群没有必要的仲裁节点数来选择新的主节点,则集群的写入和 读取请求均会失败。此行为不同于 Elasticsearch 的默认行为。
专用主节点执行以下群集管理任务:
-
跟踪群集中的所有节点
-
跟踪群集中的索引数量
-
跟踪属于每个索引的分片数量
-
维护群集中节点的路由信息
-
在状态更新后更新群集状态,如在群集中创建索引和添加或移除节点
-
在群集中的所有节点之间复制群集状态的更改
-
通过发送心跳信号(用于监控集群中数据节点可用性的周期信号)来监控所有集群节点的运行状况
下图显示了包含十个实例的 Amazon ES 域。七个实例是数据节点,三个是专用主节点。只有一个专用主节点处于活动状态,另外两个灰色专用主节点作为备份,以防活动的专用主节点发生故障。所有数据上传请求由七个数据节点提供,并且所有群集管理任务均卸载到活动的专用主节点。

虽然专用主节点不处理搜索和查询请求,但它们的大小与其管理的实例、索引和分片数量高度相关联。对于生产群集,我们建议专用主节点采用以下实例类型。这些建议基于典型工作负载,可能根据您的需求而有所不同。具有许多分片或字段映射的集群可受益于更大的实例类型。监控专用主节点指标以查看您是否需要使用更大的实例类型。
实例计数 |
推荐的最小专用主实例类型 |
---|---|
1–10 |
|
10–30 |
|
30–75 |
|
75–200 |
|
-
有关特定配置更改如何影响专用主节点的信息,请参阅配置更改。
-
有关说明实例计数限制的澄清,请参阅群集和实例限制。
-
有关特定实例类型的更多信息,包括 vCPU、内存和定价,请参阅 Amazon Elasticsearch 实例价格
。