nacos1.4x raft 协议源码解析

nacos1.4x reft协议在线流程图

http://assets.processon.com/chart_image/637b1c1b1efad454983d6afd.png

reft选举流程:

1.nacos server 启动执行RaftCore.init() ,然后加载持久化机制 raftStore.loadDatums,并设置周期

2.定时任务执行集群leader 选举 MasterElection 任务

3.MasterElection  制定规则,设置随机15-20s 任务,重置心跳时间,然后发起leader投票

4.sendVote() 将投票信息发送给其他集群节点,收到返回结果,最后决定谁为leader

5.GlobalExecutor.registerHeartbeat(new HeartBeat()); 定时任务执行集群节点心跳的heartbeat任务

6.sendBeat() 把本地数据的key 打包成 gzip 数据包发送给其他节点,其他节点收到之后 会判断是否为leader 服务,否则拒绝解析数据, 如果为leader节点 则将自己更该为follower 节点,

7.其他节点更新leader信息,通过心跳机制通知其他节点,

8.follower 节点接受到 key 之后放入本地key 的map 中,然后本地key 默认值为 0 ,接收到的key 默认值为 1 ,然后进行数据校验,进行key 的更新或者删除

9.HttpClient.asyncHttpGet 根据接收到的key 再去leader 拉取具体信息

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值