领导人选举模式 Leader Election Pattern

未匹配的标注

描述

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

背景和问题

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

解决方案

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

监控策略

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

选举策略

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

注意事项

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

何时使用

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

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

上一篇 下一篇
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
发起讨论 只看当前版本


暂无话题~