RAFT 共识算法

news/2025/10/11 18:05:34/文章来源:https://www.cnblogs.com/aibi1/p/19135678

Leader - Follower 消息同步

image

以Kafka为例子
在 Kafka 中,Leader 节点确保所有 Follower 节点成功接收消息的机制,主要通过 ISR(In-Sync Replicas,同步副本列表)acks 消息确认机制 实现,具体流程如下:

1. 核心机制:ISR 列表与同步确认

  • ISR 列表:每个分区的 Leader 会维护一个 ISR 列表,记录与自己保持同步的 Follower 节点(包括 Leader 自身)。
    Follower 需满足两个条件才能留在 ISR 中:

    • 与 Leader 保持网络连接(通过定期 heartbeat 心跳机制确认存活);
    • 消息同步进度不落后于 Leader 太多(可通过 replica.lag.time.max.ms 配置容忍的最大同步延迟,默认 30 秒)。
  • 消息同步流程

    1. 生产者发送消息到 Leader 后,Leader 将消息写入本地日志;
    2. Follower 定期向 Leader 发送拉取请求(FetchRequest),同步新消息并写入本地日志;
    3. Follower 同步完成后,向 Leader 返回确认(FetchResponse);
    4. Leader 收到 Follower 的确认后,更新该 Follower 的同步进度,确保其留在 ISR 中。

2. 确保所有 Follower 接收的关键配置:acks 参数

生产者通过设置 acks 参数,控制 Leader 何时向生产者返回“消息发送成功”的确认,从而间接确保 Follower 同步状态:

  • acks=all(或 -1)时
    Leader 必须等待 ISR 中所有副本(包括所有 Follower) 都成功写入消息后,才向生产者返回确认。
    这是最严格的配置,可确保消息被所有同步的 Follower 接收(只要它们在 ISR 中)。

  • 其他 acks 配置的区别

    • acks=1(默认):仅 Leader 写入成功后即返回确认,不等待 Follower 同步(可能存在 Follower 未收到的风险);
    • acks=0:Leader 接收消息后立即返回确认,不等待写入本地日志(可靠性最低)。

3. 异常处理:Follower 同步失败的情况

  • 若某个 Follower 长时间未同步(超过 replica.lag.time.max.ms),Leader 会将其从 ISR 中移除;
  • 此时若 acks=all,Leader 只需等待 剩余 ISR 中的副本 确认即可(无需等待已脱离 ISR 的 Follower);
  • 若需严格确保“最初配置的 2 个 Follower 都必须收到”,需结合以下配置:
    • min.insync.replicas=N(例如设置为 3,即 Leader + 2 Follower 都在 ISR 中才允许写入);
    • 同时保证 acks=all,此时若任何一个 Follower 脱离 ISR,生产者会收到异常(NotEnoughReplicasException),需重试直到所有 Follower 同步完成。

总结

要确保 2 个 Follower 都收到消息,需满足:

  1. 生产者配置 acks=all
  2. 2 个 Follower 均处于 ISR 列表中(同步正常);
  3. 可选配置 min.insync.replicas=3(强制要求 Leader + 2 Follower 都同步成功,否则拒绝写入)。

通过这套机制,Kafka 既能保证消息可靠同步到 Follower,又能通过 ISR 动态调整同步范围,避免因个别节点故障导致整个集群不可用。

投票

当client端写请求给follower,请求会被重定向到leader
follower 150-300 ms收不到leader请求,就转化为候选人角色,开启投票。

投票的信息内容:日志的数据量,term的轮数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/934971.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025氧化镁厂家最新推荐榜:高纯度与优质服务并重的行业先锋

2025氧化镁厂家最新推荐榜:高纯度与优质服务并重的行业先锋随着工业和科技的快速发展,氧化镁作为一种重要的化工原料,在多个领域发挥着关键作用。为了帮助筛选氧化镁品牌,特此发布权威推荐榜单,为采购决策提供专业…

【Vue】LangChain4j大模型对话-前端页面完成(vite+vue3+router)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【Vue】LangChain4j大模型对话-前端页面完成(vite+vue3+router)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

contenteditable 深度交互教程

contenteditable 交互式教程 - 百灵AI * { box-sizing: border-box; margin: 0; padding: 0; font-family: "Segoe UI", system-ui, -apple-system, sans-serif } body { background: linear-gradient(135de…

【gradio】使用Gradio快速开发前端界面:基础知识

【gradio】使用Gradio快速开发前端界面:基础知识使用Gradio快速开发前端界面:基础知识前言一、什么是Gradio?二、安装Gradio三、快速入门:构建一个简单的文本处理界面四、Gradio 的核心组件五、核心组件的演示六、…

2025风机盘管厂家口碑推荐榜:高效节能与稳定性能的行业首选

2025风机盘管厂家口碑推荐榜:高效节能与稳定性能的行业首选随着建筑行业的快速发展,风机盘管作为中央空调系统中的重要组成部分,其市场需求日益增长。高效节能与稳定性能成为用户选择风机盘管时的重要考量因素。为了…

距离和

http://noip.ybtoj.com.cn/contest/1121/problem/3 1.3 距离和 图解1685. 有序数组中差绝对值之和 14962615. 等值距离和 17932602. 使数组元素全部相等的最少操作次数 19032968. 执行操作使频率分数最大 24441703. 得…

痞子衡嵌入式:在i.MXRT下测试启动特性时可改写OTP Shadow寄存器而不烧OTP

大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是i.MXRT下测试启动特性时可改写OTP Shadow寄存器而不烧OTP。我们知道恩智浦 i.MXRT 系列除了 BOOT 相关引脚电平配置之外,主要通过片内 eFuse/OTP 存…

Open WebUI:打造友好且强大的自托管 AI 平台

Open WebUI:打造友好且强大的自托管 AI 平台目录 摘要 一、引言 二、Open WebUI 的概念讲解 (一)功能特性 (二)技术基础 三、Open WebUI 的架构设计 (一)系统架构图 (二)架构模块介绍 四、Open WebUI 的安装与…

直流微电网运行控制仿真算法设计与实现

一、仿真模型构建 1. 核心组件建模电源模块光伏电池:采用单二极管等效电路模型,结合扰动观察法实现MPPT控制 % MPPT控制仿真代码片段 V_pv = linspace(0, V_oc, 1000); % 光伏输出电压范围 I_pv = solar_cell_model…

基于MATLAB的多棵树分类器(随机森林)

一、实现流程 1. 数据预处理 % 加载鸢尾花数据集 load fisheriris X = meas(:,1:2); % 使用前两个特征 Y = species;% 处理缺失值(若有) cleanData = rmmissing([X, categorical(Y)]);% 特征标准化 X_scaled = zsco…

车载360环视平台:米尔RK3576开发板支持12路低延迟推流

在汽车智能化、网联化快速发展的今天,360环视系统 已成为智能驾驶和自动泊车的标配技术。无论是泊车入位、低速行车还是复杂路口的安全辅助,360环视都依赖于 多路摄像头 的实时接入与高效处理。然而,传统硬件平台往…

2025双氧水厂家最新推荐榜:品质卓越与环保安全的首选品牌!

2025双氧水厂家最新推荐榜:品质卓越与环保安全的首选品牌!随着环保意识的不断提升,双氧水作为一种高效、环保的氧化剂,在多个行业中的应用越来越广泛。从工业清洗到医疗消毒,从污水处理到食品加工,双氧水的需求量…

TDengine 3.3.6.0 使用Docker部署3节点集群

一、使用 Docker Swarm 管理 TDengine+Nginxdocker版本为26。 使用docker swarm 进行集群管理。 使用taosAdapter实现RESTful 接口访问。 使用nginx代理访问集群。二、架构设计 基于TDengine 节点 IP:192.168.0.1/db1…

文本切割方案进化概览:从“机械切割”到“智能解构”

文本切割方案进化概览:从“机械切割”到“智能解构”文档分块技术已经走过了三个主要时代,目前正迈向第四个: V1.0 机械时代: 方法: 固定长度分块、字符/Token分块。 缺陷: 完全无视语义和逻辑,粗暴地将文本切开,…

2025氧化镁厂家最新推荐榜:高纯度与稳定性能的行业佼佼者!

2025氧化镁厂家最新推荐榜:高纯度与稳定性能的行业佼佼者!随着工业技术的不断进步,氧化镁作为一种重要的无机化工原料,在多个领域得到了广泛应用。从建筑材料到电子元件,从环保材料到医药行业,氧化镁的应用范围日…

大模型RAG的上下文压缩与过滤

大模型RAG的上下文压缩与过滤一、为什么要压缩 & 过滤检索器一次拉回 top-k 篇文档,其中 80% 的 token 与问题无关 →浪费 LLM 上下文窗口无关内容引入幻觉目标:在“送进 LLM 之前”就把无用段落/句子/ token 丢…

iOS 26 设备文件管理实战指南,文件访问、沙盒导出、系统变更与 uni-app 方案适配

iOS 26 设备文件管理实战指南,文件访问、沙盒导出、系统变更与 uni-app 方案适配pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font…

从“视频孤岛”到“统一视界”:解析视频汇聚平台EasyCVR的核心功能与应用场景

从“视频孤岛”到“统一视界”:解析视频汇聚平台EasyCVR的核心功能与应用场景在物联网和智慧城市高速发展的今天,海量、异构的视频监控设备如何实现统一管理、智能分析与高效应用,成为行业的核心痛点。本文将深入解…