集群成员的变更:
对于基于集群的服务来说,难免会因为某些原因需要增加或者移除服务器,
最简单的方法:
就是停止所有服务器,修改集群成员配置,然后重启集群。
注意:但是这样的方法难免会有一段时间内不能提供服务,必须要仔细选择维护的时间。
所以为了减少无法提供服务的时间,以及夜间维护的次数,Raft算法给出了安全的集群成员变更方法 ---- 单服务器变更,这里的安全是指不会出现多个Leader节点的情况。
单节点变更的具体流程:
- 节点 D 向领导者申请加入集群;
- 领导者 A 向新节点 D 同步数据;
- 领导者 A 将新配置 [A、B、C、D] 作为一个日志项,复制到配置中的所有节点,然后应用新的配置项(这里需要注意的是,每个节点接收到新的配置项肯定是有时差的);
- 如果新的日志项应用成功(被大多数节点复制成功),那么新节点添加成功。
单服务器变更:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)