开发者社区 > 数据库 > 正文

Raft 集群中的3种状态的节点是怎么互相配合工作的?

已解决

Raft 集群中的3种状态的节点是怎么互相配合工作的?

展开
收起
云上静思 2022-09-18 16:45:25 364 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    Raft会首先选举出一个Leader,由Leader 完全管理副本日志。Leader 负责接收所有客户端的日志条目,并复制到其他的Follower 节点,在安全时告知各个Follower 把这些日志条目应用到各自的状态机上。如果Leader 出现故障,则Followers 会重新选举出新的Leader。Follower 自身不发送任何请求,只负责响应来自Leader 和Candidate 的请求,如果Follower 接收不到消息,它会转换成Candidate 并发起Leader 选举,获得集群中大多数选票的Candidate 将成为Leader。

    Raft 把时间分割成任意长度的任期,每个任期都有一个任期号,每进行一次Leader 选举,都会开启一个新的任期。如果Leader 或Candidate 发现自己的任期号过时,会立刻切换为Follower 状态;如果一个节点收到包含过时任期号的请求,则会拒绝这个请求。

    以上内容摘自《云原生数据库原理与实践》,这本书可以在电子工业出版社天猫店购买。

    2022-09-18 17:38:44
    赞同 展开评论 打赏
问答地址:

数据库领域前沿技术分享与交流

相关电子书

更多
Codis 集群演化与 Redis 异步迁移 立即下载
Flink中的两类新型状态存储 立即下载
基于 Dledger 构建高可用 Apache RocketMQ 集群实践 立即下载