创建支持多可用区的集群
1. 进入 腾讯云 Elasticsearch Service 购买页,选择“可用区部署模式”,设置多可用区网络。
重要提示:
要使用多可用区部署的集群,必须启用专用主节点,且最少为三个,推荐在至少有 3 个可用区的地域进行多可用区部署。
在仅有两个可用区的地域部署双可用区集群仍存在 50% 的可用区故障风险,目前为白名单功能,请了解并确认接受相关风险之后,充分评估业务对可用性的要求,再提交工单申请开通。详细说明请参见本文相关说明。
2. 以上海地域为例,在可用区部署模式中,支持创建双可用区和三可用区集群,用户需要选择和可用区数量相等的可用区及子网。


节点数量会自动按可用区的倍数调整。为了保证集群的稳定性及可靠性,当用户选择多个可用区时,专用主节点默认开启,可以选择专用主节点个数为三个或五个。
专用主节点也会均匀的分布在三个可用区中,保证一个可用区发生不可用的情况下,不会出现超过一半的专用主节点不可用的情况,始终保持集群有超过法定的主节点选择个数,保证了集群的可靠性。


集群多可用区容灾原理
数据节点
为了保证多可用区容灾的功能生效,用户需要遵守以下原则:
1. 购买集群的数据节点个数为可用区个数的倍数,例如选择两个可用区容灾,那么数据节点个数应该为2、4、6、8...以此类推。
2. 索引分片至少设置1个副本,即保证集群始终有两份以上的数据。
ES 会自动的将用户所购买的数据节点均匀的部署在用户所选择的可用区中,且所部署的数据节点含有可用区感知的功能。该功能使用户数据的副本会分布到多个可用区中,保证单个可用区仅有一份副本。
ES 提供了 VPC 内负载均衡功能,用户通过我们提供的 VIP 连接集群,通过 ES 的 API 进行数据读写及集群控制操作。
此 VIP 绑定了集群内部的所有数据节点,并提供负载均衡功能,用户所有请求会平均分布到集群的各个数据节点上。
此 VIP 还带有健康检查功能,如一个周期内多次检查确认某节点没有响应,健康检查功能会暂时从 VIP 的绑定列表中摘除有问题的节点,直到节点恢复正常。
这样就保证了当某个节点宕机,或者某个机房的可用区不可用的情况下,自动的剔除有问题的节点,保证用户的客户端不会请求到有问题的节点。从而在可用区故障的情况下,实现客户业务无感知的切换,提高了客户业务的稳定性。


专用主节点
为了提高集群的可靠性,用户在使用多可用区容灾功能时最少要创建三个专用主节点,且分布在三个不同的可用区中。即便用户选择的是双可用区部署数据节点,我们也会自动的为用户再多选择一个可用区部署专用主节点。这种部署方式,可以保证当一个可用区不可用时,集群依旧有超过半数的法定主节点选举个数,可以保证集群的正常选主。


仅有两个可用区地域的部署风险说明
重要提示:
确认在仅有两个可用区地域使用双可用区部署的,请知悉以下风险提示。
由于 ES 的专用主节点选主机制要求至少有 2/3 的专用主节点在线才可选出新的专用主节点,在不满足 2/3 的专用主节点在线时将无法选出新的专用主节点导致集群无主且无法被访问。因此,在仅有两个可用区的地域采用双可用区部署方式时,仍存在 50% 的宕机风险,具体情况请参见下表在不同可用区数量情况下,多可用区部署的高可用性对比说明。
所选地域 可用区的数量 | 所选的可用区数量 | 专用主节点数量 | 单个可用区发生故障时的情况 |
2 个 | 2 个(双可用区部署) | 3 | 仍有 50% 概率宕机,取决于是哪个可用区发生故障:由于腾讯云 ES 会将 3 个专用主节点中的 2 个分配到可用区 A、1 个分配到另一个可用区 B。 若持有 1 个主节点的可用区 B 故障,可用区 A 仍有两个专主,将自动选出新的专主,此时服务不受影响。 若持有 2 个主节点的可用区 A 故障,可用区 B 仅有 1 个专主,无法选出新的专用主节点,因此将会导致集群无主且访问中断。腾讯云 ES 将在检测到故障时启动应急预案并恢复可用区 B 的访问。 |
3 个或以上 | 2 个(双可用区部署) | 3 | 不会宕机。由于三个专用主节点仍会分布在三个可用区(前两个可用区由用户选择,第三个可用区由腾讯云自动指定),当单个可用区故障时,剩余两个可用区仍有 2 个专用主节点,可完成选主。 |
3 个或以上 | 3 个(三可用区部署) | 3 | 不会宕机。由于三个专用主节点会分布在用户选择的三个可用区,当单个可用区故障时,剩余两个可用区仍有 2 个专用主节点,可完成选主。 |