摘要:当 Docker Engine 以 swarm 模式运行时,管理器节点实现 Raft 共识算法来管理全局集群状态。 为什么原因Docker群模式是使用一个共识算法,以确保那些负责在集群中的管理和调度
当 Docker Engine 以 swarm 模式运行时,管理器节点实现 Raft 共识算法来管理全局集群状态。
为什么原因Docker群模式是使用一个共识算法,以确保那些负责在集群中的管理和调度任务的所有经理节点,都存储相同一致的状态。
在整个集群中具有相同的一致状态意味着在发生故障时,任何 Manager 节点都可以接收任务并将服务恢复到稳定状态。例如,如果集群中负责调度任务的Leader Manager意外终止,任何其他 Manager 都可以接手调度的任务并重新平衡任务以匹配所需的状态。
使用共识算法在分布式系统中复制日志的系统确实需要特别小心。它们通过要求大多数节点就值达成一致来确保集群状态在出现故障时保持一致。
Raft 最多可以容忍(N-1)/2失败,并且需要大多数或法定人数的 (N/2)+1成员就提议给集群的值达成一致。这意味着在运行 Raft 的 5 个 Manager 的集群中,如果 3 个节点不可用,系统将无法处理更多请求以安排额外的任务。现有任务继续运行,但如果管理器集不健康,则调度程序无法重新平衡任务以应对故障。
群体模式下共识算法的实现意味着它具有分布式系统固有的特性:
1.容错系统中的值达成一致。
2.通过领导人选举过程相互排斥
3.集群成员管理
4.全局一致的对象排序和 CAS(比较和交换)原语
相关文章推荐
智能手机建站的优点是什么?网站页面布局有哪些关键点? 2022-01-10
2022年中国云计算面临的问题及发展前景预测分析2021-12-28
绿色智能基础设施连接可持续未来-IDCC2021万国数据第一代Smart DC发布会议程揭晓2021-12-27
阿里云:早期未意识到Apache log4j2漏洞情况的严重性 将强化漏洞管理2021-12-27
云计算开发:Python3-replace()方法详解2021-12-27