SDN控制器集群如何实现team/leader/Member之间的角色定义以及选举?以及每个角色负责的相应的功能是什么?

参与12

2同行回答

windfengwindfeng系统分析师华为
业务节点有Leader,Follower的角色,当有节点故障的时候,Leader节点负责将故障节点下的设备进行重新分配。集群业务节点成员的Leader/Follower角色是基于业界开源的AKKA框架及Raft算法实现的,工作机制和选举流程如下:Follower:候选人,发起选举。Candidate:接收到选举请求后投票。Le...显示全部

业务节点有Leader,Follower的角色,当有节点故障的时候,Leader节点负责将故障节点下的设备进行重新分配。
集群业务节点成员的Leader/Follower角色是基于业界开源的AKKA框架及Raft算法实现的,工作机制和选举流程如下:

Follower:候选人,发起选举。
Candidate:接收到选举请求后投票。
Leader:获得半数以上投票的Candidate将切换为Leader,负责业务数据同步和复制。
选举流程如下:
a. 所有节点初始状态都是Follower,并启动选举定时器。
b. 选举定时器超时,Follower会自动转化角色为Candidate,发起选举,期待其它Server回复OK同意自己成为Leader。
c. 一轮Term选举过后,如果没有Server选举成功,则currentTerm加一,重新发起选举。
d. 如果得到超过半数选票,则角色转换成Leader,开始广播心跳报文。
e. 当Candidate在选举过程中收到Leader的心跳报文,如果Leader的Term不小于本地的currentTerm,则承认Leader合法,主动降为Follower。
f. 当Leader收到比自己更高Term的Leader的心跳报文,则主动降级为Follower。
g. Candidate既没有选举成功,也没有收到其它Leader的RPC请求,这种情况一般出现在多个节点同时发起选举,最终每个Candidate都将超时。为了减少冲突,这里采取“随机退让”策略,每个Candidate重启选举定时器(随机值),大大降低了冲突概率。

详细资料可以参考 本次活动"日程资料”页面

收起
软件开发 · 2018-11-29
浏览2912
wangtrendwangtrend网络工程师某大型银行
任何一个服务器都可以成为一个候选者Candidate,它向其他服务器Follower发出要求选举自己的请求。其他服务器同意了,发出OK。这样这个候选者就成为了Leader领导人,它可以向选民也就是Follower们发出指令,比如进行日志复制。以后通过心跳进行日志复制的通知。如果一旦这个Leade...显示全部
  1. 任何一个服务器都可以成为一个候选者Candidate,它向其他服务器Follower发出要求选举自己的请求。
  2. 其他服务器同意了,发出OK。
  3. 这样这个候选者就成为了Leader领导人,它可以向选民也就是Follower们发出指令,比如进行日志复制。
  4. 以后通过心跳进行日志复制的通知。
  5. 如果一旦这个Leader当机崩溃了,那么Follower中有一个成为候选者,发出邀票选举。
  6. Follower同意后,其成为Leader,继续承担日志复制等指导工作。
    7.如果同时又两个Follower变成Candidate参与Leader的竞选,则进入分裂选举。
收起
银行 · 2018-11-29
浏览2723

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2018-11-27
  • 关注会员:4 人
  • 问题浏览:4085
  • 最近回答:2018-11-29
  • X社区推广