问题一:什么是StateProbe状态?
什么是StateProbe状态?
参考回答:
StateProbe是探测状态。当follower因异常原因落后Leader节点数据过多,并拒绝了最近主同步的append消息时,会进入此状态。在Probe状态下,leader会试图继续往前追溯该follower的日志从哪里开始丢失的。此状态下,leader每次最多append一条日志,并根据回应调整Next索引。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/640700
问题二:什么时候follower会进入StateReplicate状态?
什么时候follower会进入StateReplicate状态?
参考回答:
当follower正常接收副本数据时,会进入StateReplicate状态。在此状态下,leader在发送副本消息后,会修改该节点的next索引为发送消息的最大索引+1,同时Inflights值会增大以加速日志复制。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/640701
问题三:在什么情况下会切换到StateSnapshot状态?
在什么情况下会切换到StateSnapshot状态?
参考回答:
当leader试图通过append消息让follower的状态与leader同步,但发现leader上保存的索引数据与follower所需的数据不匹配时(例如,leader已将旧数据写入快照,而follower仍需要这些数据),就会切换到StateSnapshot状态。在此状态下,leader会发送快照给follower以同步数据。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/640702
问题四:Inflights流控是如何实现的?
Inflights流控是如何实现的?
参考回答:
Inflights流控的设计思想类似于“往池子注水和放水”的过程,通过给定“池子”的大小来控制数据传输速度。在Raft实现中,没有使用传统的队列,而是在内存块上采用循环方式模拟队列特性,以提高效率。这种方式可以有效地控制数据传输速度,避免follower节点超载。用户可以在应用层指定Inflights的具体大小。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/640703
问题五:etcd/raft中节点有哪些角色?
etcd/raft中节点有哪些角色?
参考回答:
etcd/raft中的节点包含三种不同的角色:candidate(候选人)、follower(跟随者)和leader(领导者)。
关于本问题的更多回答可点击原文查看: