开发者社区 > 云原生 > 正文

handleVote方法判断发起节点、响应节点维护的 team 进行投票“仲裁”如何理解?

handleVote方法判断发起节点、响应节点维护的 team 进行投票“仲裁”如何理解?

展开
收起
vncamyi27xznk 2021-11-22 09:14:53 320 0
1 条回答
写回答
取消 提交回答
  • 如果发起投票节点的 term 小于当前节点的 term 此种情况下投拒绝票,也就是说在 raft 协议的世界中,谁的 term 越大,越有话语权。  如果发起投票节点的 term 等于当前节点的 term  如果两者的 term 相等,说明两者都处在同一个投票轮次中,地位平等,接下来看该节点是否已经投过票。  如果未投票、或已投票给请求节点,则继续后面的逻辑(请看 step3)。  如果该节点已存在的 Leader 节点,则拒绝并告知已存在 Leader 节点。  如果该节点还未有 Leader 节点,但已经投了其他节点的票,则拒绝请求节点,并告知已投票。  如果发起投票节点的 term 大于当前节点的 term。 拒绝请求节点的投票请求,并告知自身还未准备投票,自身会使用请求节点的投票轮次立即进入到 Candidate 状态。 答复内容摘自《Apache RocketMQ 源码解析》,这本电子书收录开发者藏经阁 下载连接:https://developer.aliyun.com/topic/download?id=1140

    2021-11-22 13:42:00
    赞同 展开评论 打赏
问答地址:

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
面向失败设计 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载