云搜索 Elasticsearch

产品文档

云搜索 Elasticsearch

多可用区部署说明

多可用区部署可以提升集群的容灾能力。ES集群可以选择跨2AZ部署或者跨3AZ部署,集群的数据节点会均匀的分布到您选择的多个多用区中,所部署的数据节点支持可用区感知功能,可使数据的副本分布到多个可用区中,保证单个可用区仅有一份副本,当单个可用区出现故障时,剩余可用区仍然可以不间断的提供服务。

多可用区部署可显著增强了集群的可用性和数据的可靠性,但网络会有一定延迟,可根据业务要求选择使用。

注意事项

关于节点

  1. 必须购买3个专用主节点。选择3个可用区部署时,每个AZ部署1个专用主节点;选择2个可用区部署时,除了用户选择的2个可用区外,系统会随机选择1个新的可用区部署1个专有主节点。
  2. 所选择的数据节点、协调节点必须是可用区个数的整数倍,这些类型的节点会均匀的部署在用户选择的可用区上。

关于索引副本

  1. 在跨2AZ部署集群时,为保证集群高可用和数据高可靠,要保证集群中的索引都有1个副本。 由于集群为索引默认配置的副本个数为1个,因此如果您对读性能没有特殊要求,可以直接使用默认值。

  2. 在跨3AZ部署集群时,为保证集群高可用和数据高可靠、要保证集群中的索引都有2个副本。 由于集群为索引默认配置的副本个数为1个、因此需要配置索引模板调整默认的副本数。详细信息请参见:索引模板。例如使用索引模板设置副本个数为2个、示例代码如下。

   PUT _template/template_1
   {
     "template": "*",
     "settings": {
       "number_of_replicas": 2
     }
   }

配置说明

为使集群含有可用区感知的能力,保证每个可用区都有一份完整的数据副本,需要对集群做一些特殊配置。详细信息请参见:Shard Allocation Awareness

例如当集群跨2个可用区部署时、集群配置相关的参数说明如下:

cluster.routing.allocation.awareness.attributes 用于告知ES使用哪些节点属性设置分片的分配策略。跨可用区实例通过在节点的启动参数中加入Enode.attr.zone_id、来标识节点的可用区(例如某个节点部署在az01可用区、则在该节点的启动参数中加入-Enode.attr.zone_id=az01),因此该参数值固定为zone_id。
注意:不要通过ES API修改此参数值、否则会引起异常
zone_id
cluster.routing.allocation.awareness.force.zone_id.values 用于告知ES在跨可用区部署时强制均分shard。假设索引中包含了3个主分片、1个副本、并且部署在az01和az02两个可用区。按照分片分配策略、系统会在az01分配3个分片、在az02分配3个分片。如果指定了cluster.routing.allocation.awareness.force.zone_id.values参数为az01,az02、当az02不可用时、该可用区的3个分片不会自动迁移到az01。 az01,az02
更新时间:2021-06-24 18:33:37
文档反馈 docs feedback