Easysearch 移除 Master 节点注意事项

Easysearch 采用智能化的动态投票配置管理机制,当集群节点发生增删变更时,系统会自动调整投票集合配置,以确保集群的高容错性。在选举新的 Master 节点或提交集群状态变更时,系统会根据当前集群状态,动态确定参与投票的 Master-eligible 节点集合并进行计数,确保决策过程的高效性和可靠性。

移除 Master-eligible 节点

Easysearch 节点角色中有一个叫 Master 的角色,配置 Master 角色的节点就具有了"投票选举"的资格,这些节点统称为 Master-eligible 节点。

有些时候你可能想移除 Master-eligible 节点,需要注意的是,如果你同时关闭一半或更多的 Master-eligible 节点,那么集群将会变得不可用。必须保证一半以上的 Master-eligible 同时在线,集群才可用。因此,执行此操作的关键点是不要一次性移除太多。建议最好一次移除一个 Master-eligible 节点,给集群足够的时间来自动调整投票配置。

假如一个 Easysearch 集群最开始有 5 个 Master-eligible 节点,一次移除一个节点,操作到最后,集群会剩下两个 Master-eligible 节点。这两个节点都不能被移除,因为一旦关闭其中一个节点,就相当于关闭了二分之一数量的 Master-eligible 节点,集群将变得不可用。

如果此时还要继续移除 Master-eligible 节点,就要先手动调整 Easysearch 的投票配置,将要移除的节点排除在投票集合之外。一旦成功地将节点添加到投票排除列表后,就可以安全的关闭该节点了。

查看投票配置

可以使用下面的命令查看集群的投票配置。

plain 复制代码
GET /_cluster/state?filter_path=metadata.cluster_coordination

从上图可以看到,我们的投票集合里有 3 个节点。但是目前集群只有 2 个节点在线。

因为要保持投票集合为单数,Easysearch 的动态投票配置管理机制并没有把已经离线的 node-3 移出投票集合。

投票排除列表

这时候如果我们要继续移除 node-2,就要手工将 node-2 节点排除在投票集合之外。而且一旦我们这样操作后,Easysearch 的动态投票配置管理机制也会将 node-3 移出投票集合。

plain 复制代码
POST /_cluster/voting_config_exclusions?node_names=node-2

可以看到 node-2 被添加到了排除列表,node-3 也已经被移出了投票集合。

还原投票列表

这时,我们就可以安全的关闭 node-2 节点了。关闭节点后,建议清理下投票排除列表,正常的集群排除列表应该为空,而且这个配置容量是有限的。

plain 复制代码
DELETE /_cluster/voting_config_exclusions?wait_for_removal=false

此外投票配置排除 API 也可以用来一次性移除多个 Master-eligible 节点。将多个 Master-eligible 节点添加到排除列表中会使系统尝试自动重新配置投票集合,从而在保持集群可用性的同时安全地关闭它们。在上述示例中,将 5 个 Master-eligible 节点集群缩减到 1 个,可以将四个 Master-eligible 节点添加到排除列表中,等待确认,然后同时关闭它们。

相关推荐
indexsunny5 小时前
互联网大厂Java求职面试实战:微服务与Spring生态全攻略
java·数据库·spring boot·安全·微服务·面试·消息队列
沪漂阿龙5 小时前
别再让数据库“吃”脏数据了!一文讲透MySQL约束,从入门到精通
数据库·mysql
2401_873544926 小时前
使用Python进行PDF文件的处理与操作
jvm·数据库·python
虾..7 小时前
多路复用 --- select系统调用
服务器·数据库·sql
杨云龙UP7 小时前
mysqldump逻辑备份文件恢复总结:全库恢复、单库恢复,一篇讲明白
linux·运维·服务器·数据库·mysql·adb
ybwycx7 小时前
mysql重置root密码(适用于5.7和8.0)
数据库·mysql·adb
色空大师8 小时前
【网站搭建实操(一)环境部署】
java·linux·数据库·mysql·网站搭建
亚历克斯神8 小时前
Flutter for OpenHarmony: Flutter 三方库 mutex 为鸿蒙异步任务提供可靠的临界资源互斥锁(并发安全基石)
android·数据库·安全·flutter·华为·harmonyos
IAUTOMOBILE8 小时前
用Python批量处理Excel和CSV文件
jvm·数据库·python
常利兵9 小时前
Spring项目新姿势:Lambda封装Service调用,告别繁琐注入!
java·数据库·spring