哈尔滨网站设计定制缅甸新闻最新消息
2026/2/19 2:58:45 网站建设 项目流程
哈尔滨网站设计定制,缅甸新闻最新消息,wordpress 开发h5页面,分析杭州高端网站建设开发的区别一、什么是Raft协议Raft协议是一种分布式共识算法#xff0c;常应用于分布式集群中#xff0c;保障系统的高可用#xff0c;避免单节点故障导致服务中断二、拆解Raft协议对于Raft协议可以从以下3个部分进行拆解1、 节点角色集群中的每个节点会在不同状态间进行切换#xff…一、什么是Raft协议Raft协议是一种分布式共识算法常应用于分布式集群中保障系统的高可用避免单节点故障导致服务中断二、拆解Raft协议对于Raft协议可以从以下3个部分进行拆解1、 节点角色集群中的每个节点会在不同状态间进行切换主要包含三个角色领导者leader集群中唯一的写操作入口由领导者同步给其他节点负责向集群内其他节点发送心跳包维持领导地位跟随者follower集群中其他节点的默认角色被动接收领导者的心跳和日志同步指令不主动发起写操作候选者candidate当跟随者在选举超时时间内未接收到领导者的心跳包则会切换成候选者触发选举流程发起投票请求争取成为领导者注协议本身并未规定固定的选举超时时间只要求这个时间是随机化的一般在某一区间内随机且远大于心跳包的发送间隔。随机化的设计是为了避免多个跟随者同时发起投票请求导致选票分散选举僵持。同时选举超时时间也支持自定义需要注意的是时间配置需要平衡“故障检测灵敏度”和“集群稳定性”时间过短容易因网络抖动导致频繁选举影响集群稳定性时间过长容易导致领导者故障后无法及时重新选举出新的leader导致服务长时间故障2、 共识同步Raft的共识同步分为选举领导者和日志复制选举领导者这是共识的前提只有确定领导者才能统一数据的写入和同步入口避免多节点各自为政出现脑裂触发条件跟随者在选举超时时间内未接收到领导者发送的心跳包判定领导者可能故障选举流程跟随者将自己的任期号1随后角色切换为候选者候选者向集群内所有其他节点发送投票请求请求其他节点为自己投票其他节点遵循“先到先得任期号优先”原则投票若候选者的任期号 ≥ 本地任期号且未给其他候选者投过票则投赞成票若候选者在选举超时时间内获得多数节点N/2 1的赞成票则成功当选为新的领导者新领导者立即向所有其他节点发送心跳包宣告领导者地位其他节点切换为跟随者注集群节点数需为奇数确保能快速选举出领导者避免选举僵持日志复制领导者产生后所有写入变更操作都会通过日志复制实现集群一致日志结构Raft日志是有序的日志条目列表每个条目包含3部分任期号该条目创建时的任期号指令具体的写入变更操作索引条目的唯一序号保证顺序同步流程接收请求领导者接收写入变更操作请求写入日志领导者将请求封装为一条日志条目先写入本地日志此时未生效处于“待提交”状态同步日志领导者向所有跟随者发送日志同步指令要求跟随者复制这条日志条目多数确认当领导者收到多数节点包括自己的“日志已成功写入”确认后将该日志条目标记为已提交并执行该操作通知生效领导者向所有跟随者发送“条目已提交”的通知跟随者收到后执行该条目对应的操作至此整个集群的元数据达成一致3、 异常场景Raft 协议能通过自身机制处理节点故障、网络分区等异常保障共识不中断领导者故障若领导者宕机集群内跟随者会因收不到心跳触发新的选举重新选出领导者新领导者会先同步本地最新的日志到其他节点确保集群日志一致后再提供服务。网络分区脑裂假设 3 节点集群A、B、C其中A 为领导者因网络故障分裂为两个分区分区 1A、分区 2B、C分区 2 中B、C 因收不到 A 的心跳会触发选举并选出新领导者如 B由于 B、C 占多数节点2/3可正常处理写入变更操作分区 1 中的 A 因节点数不足多数会自动进入 “不可写” 状态无法处理写入变更操作当网络恢复后A 会发现集群的任期号已更新B 当选后任期号 1便会自动切换为跟随者同步 B 的最新日志最终集群恢复统一状态

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询