解析分布式云原生数据库中Raft算法的消息类型
浪潮云溪数据库作为新一代分布式数据库,使用Raft共识算法实现多副本之间数据的一致性和外部读取的一致性。在云溪数据库的底层实现中,通过以下几种消息类型实现Raft机制的运行。其中,本地消息指节点创建完消息后,由自身处理该消息。节点间消息指节点在创建完消息后,将消息发送到其他节点并由这些节点处理。 Part 1 - 本地消息 MsgHup Follower节点持有一个选举计时器,当节点所持有的选举计时器超过预设的选举时间阈值时,便会创建MsgHup消息。具体操作包括: Follower节点调用选举计时器,将选举计数加1; 检查当前Follower节点是否存在于Raft集群内,若不存在,则拒绝创建MsgHup消息。若存在于Raft集群内,则检查选举计数是否大于等于设定的选举时间阈值。若小于设定的选举时间阈值,则拒绝创建MsgHup消息。若满足条件,则创建MsgHup消息。 在创建出MsgHup消息后,当前Follower节点会切换成PreCandidate状态,进入下一步操作。与此同时,PreCandidate节点和Candidate节点也持有一个选举计时器,若PreCandidate节点...