Master选举组件

背景

在集群中,经常会需要选举master,在很多开源分布式中间件比如ZK,ES都会有master选举问题。通常我们会使用ZK或者自己实现来做master选举。但是,因为master选举的功能,而引入ZK,代价太大,并且增加系统维护成本。自己实现你master则需要设计完整的master选举算法,目前大部分都是各自实现自己的master算法。
还有另外一个场景,集群内的机器需要相互感知到对方的存在。在当前正在处理重要事务的机器宕机后,其他机器可以立刻感知到,并继续处理。通常可以采用ZK实现。
在没有ZK的情况下,怎么去实现呢?

应用场景

  • 分布式集群的master选举
  • 分布式锁
  • 分布式任务调度节点选举
  • 适用于处理需要在集群中选举出一个节点的场景
  • 集群内节点相互感知

基本功能

  • 集群内相互感知,维护集群状态
  • master选举服务
  • 提供观察者服务,在master发生变更后,推送变更

算法调研

Bully

为集群中的每一个服务设置唯一编号,选举编号最大(小)的服务为master。他会导致脑裂问题,并且因为选举为master的服务大部分时间是一个,集群的稳定性依赖于master单机服务的稳定性。

Bully变种

ES的选举算法

Paxos

Chubby

Raft

etcd

ZAB协议

ZooKeeper

目标

本文主要在讨论了现有的master选举算法,想要实现一个不依赖任何外部服务的master选举组件,提供简单的api和配置,引入jar即可使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值