群体模式下的筏共识
当Docker引擎以集群模式运行时,管理器节点将实现 Raft Consensus Algorithm(筏共识算法)来管理全局集群状态。
为什么原因泊坞窗群模式是使用一个共识算法,以确保那些负责在集群中的管理和调度任务的所有经理节点,都存储相同一致的状态。
在整个群集中具有相同的一致状态意味着在发生故障的情况下,任何Manager节点都可以接管任务并将服务恢复到稳定状态。例如,如果负责群集中计划任务的领导者管理器意外死亡,则任何其他管理器都可以接管计划任务并重新平衡任务以匹配所需状态。
使用共识算法在分布式系统中复制日志的系统确实需要特别注意。它们通过要求大多数节点就值达成共识,从而确保在出现故障时群集状态保持一致。
木筏可以容忍(N-1)/2
失败,并且需要多数或法定人数的
(N/2)+1
成员才能同意向集群提出的价值。这意味着在由5个运行Raft的Manager组成的集群中,如果3个节点不可用,则系统将无法再处理任何请求来安排其他任务。现有任务将继续运行,但是如果管理器集运行状况不佳,则调度程序将无法重新平衡任务以应对故障。
群模式下共识算法的实现意味着它具有分布式系统固有的特性:
码头工人,集装箱,集群,群,筏