Raft实现报告(13)

2022-03-22  本文已影响0人  糖醋沼跃鱼

Raft实现报告(13)

集群中的角色转换 part2

上期说到我们的实现要把,配置变更集成到算法当中去,为了让配置更改安全,那么在过度期间不可能在同一任期选举出两个leader,但是,如果服务器直接从旧的配置,切换到新的配置的任何方法都是不安全的。通过一次原子的切换所有服务器是不可能的,因此,集群可能会在过渡期分成两个独立的部分。

为了确保安全,配置更改必须使用两阶段方法。有多种方法可以实现这两个阶段。例如,一些系统使用第一阶段禁用旧的配置,使得他无法处理客户端的请求;然后二阶段启动新的配置。在Raft中,集群首先切换到我们称之为联合共识的过度配置;一旦提交了联合共识,系统就会转换到我们的新的配置,联合共识结合了新旧配置:

联合共识允许单个服务器在不同时间在配置之间进行转换,而不会影响安全性。此外,联合共识允许集群在更改配置期间继续为客户端请求提供服务。

上一篇 下一篇

猜你喜欢

热点阅读