领导人选举模式 Leader Election Pattern

未匹配的标注

描述#

    通过协调合作,在分布式应用程序的任务实例集合中,选举一个实例作为管理的其他实例的领导者。这个模式可以有助于确保任务实例不互相冲突,避免争用共享资源。

背景和问题#

    一个分布式应用包括很多任务。这些任务可以是相同代码,或者访问相同资源,或者并行工作。这些工作的运行需要相互协调,确保它们不发生冲突,避免争用共享资源。

解决方案#

    任务实力集合中的其中一个任务实例充当领导者,协调其他任务实例完成任务。选举过程必须谨慎,防止在同一个时间有多个实例接管领导者的角色。

监控策略#

下属者通过轮询或者心跳机制监控领导者,如果领导者意外终止或者网络故障,那么下属者会选出新的领导者。

选举策略#

  1. bully 算法
  2. 环算法
  3. Paxos 算法

注意事项#

  1. 需要有检测领导失败或变成不可用的机制。
  2. 关闭一些下属任务,可能会导致领导者终止。
  3. 使用一个专用进程的领导者是一个比较简单的方法。

何时使用#

多个任务,并且需要协调各个任务完成工作。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 0
发起讨论 只看当前版本


暂无话题~