zhoutian_car_tt 2021-09-15 10:13 采纳率: 0%
浏览 31

为什么需要集群Leader的“选举机制”,“顺位继承”不香吗?

  • 我们知道,对于类似zookeeper这种强一致性分布式服务框架,需要一种保证任意时刻只有一个Leader存在的机制。不过我有个疑问,为什么一定要用“选举机制”来保证呢?什么ZAB协议,什么Serverid,Zxid,Epoch这些东西,不复杂吗?
  • 我的想法是能否用类似“顺位继承”机制来代替,具体算法是:任意一个节点在加入集群的时候就获得一个唯一序号,并且每个节点都保存一份最新的序号列表、当前Leader序号、自己的序号。最先成为Leader的序号最小,当Leader挂了,集群存活的节点之间无需“选举”,都自动认为比该Leader的序号大的下一个序号所在的节点成为下一任Leader,这就是所谓的“顺位继承”。至于节点进入集群时的序号生成算法,选择就太多了,如:随机、自增、按节点自身的资源权重进行计算(比如自身的资源CPU、内存、硬盘比其他节点高,自身生成的序号就可以更靠近当前Leader的序号)等等都可以。
  • 当然,这种依赖“序号”的顺位继承机制也是有缺陷的,比如当前Leader的序号可能会一直变大,最终用尽,到时候需要一种序号重排的算法为集群里的所有节点进行序号重排。但是比起“选举”所消耗的资源和时间,我认为“顺位继承”显然是更香的。
  • 写回答

1条回答 默认 最新

  • CSDN专家-微编程 2021-09-15 10:34
    关注

    选举可以保证能从集群中找出一个最优的服务晋升为Leader继续处理事务和调度等一系列职责

    评论

报告相同问题?

问题事件

  • 修改了问题 9月15日
  • 修改了问题 9月15日
  • 创建了问题 9月15日

悬赏问题

  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误