Plantre Plantre
首页
后端
技术
硬件
  • 前端文章

    • HTML
    • CSS
    • JavaScript
  • 技术

    • 技术文档
    • GitHub技巧
    • Nodejs
    • 博客搭建
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

plantre

一个后端开发者
首页
后端
技术
硬件
  • 前端文章

    • HTML
    • CSS
    • JavaScript
  • 技术

    • 技术文档
    • GitHub技巧
    • Nodejs
    • 博客搭建
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 计算机组成原理

  • 操作系统

  • 计算机网络

  • 设计模式

  • Java

  • Spring

  • SpringCloud

  • MySQL

  • Redis

  • 分布式

  • Zookeeper

  • Dubbo

  • Kafka

    • Kafka的架构
    • docker搭建Kafka集群
    • spring关于kafka的最全配置
    • kafka分主副节点吗
    • kafka的 topic, key , 分区的关系,以及数量对应关系,以及默认值
    • spring项目是事先创建topic还是代码里创建
    • 一个topic一般创建几个分区,几个副本数,只有三个broker的话又是怎么分布的
    • 一共有3个broker,一个topic有10个分区,副本数最大为3?分区又是怎么分布在3个broker上的?用的什么算法
    • 副本数和分区数什么区别
    • 我还是不明白副本数,请画出具体的分布图,3个broker,某个topic10个分区
    • Leader+​​Follower = 副本数?
      • ​​ISR(In-Sync Replicas)是什么,最多有多少个,这个数量怎么得来的
      • 在 Spring Kafka 中发送消息
      • 向kafka中发送重复的数据会怎么样
      • send消息时,key有什么用?
    • 数据结构

    • 算法

    • OJ

    • 从道家哲学看计算机?
    • 后端
    • Kafka
    plantre
    2025-06-23
    目录

    Leader+​​Follower = 副本数?

    在 Kafka 的分区副本机制中,副本数(Replication Factor) 等于 Leader 副本数量 + Follower 副本数量。具体关系如下:


    # 📌 一、核心公式

    副本数(Replication Factor) = 1(Leader) + N(Follower)
    
    1
    • Leader 副本:每个分区有且仅有 1 个 Leader,负责处理该分区的所有读写请求。
    • Follower 副本:每个分区有 N 个 Follower(N ≥ 0),仅负责从 Leader 同步数据,不直接服务客户端。
    • 副本总数:即 1 + N,例如副本数=3 时,包含 1 Leader + 2 Follower。

    # 📊 二、角色分工与协作

    副本类型 职责 是否服务客户端 数量限制
    Leader 处理生产者写入和消费者读取请求;管理数据同步到 Follower ✅ 是 固定 1 个
    Follower 从 Leader 异步/同步拉取数据;参与 Leader 选举(仅 ISR 中的副本有资格) ❌ 否 可配置(副本数-1)

    ✅ 关键点:

    • Follower 不直接提供读写服务,仅作为数据冗余备份和故障恢复的候选。
    • 生产者必须将消息发送到 Leader,消费者也必须从 Leader 消费数据。

    # ⚙️ 三、副本数配置示例

    假设某 Topic 的分区配置为 副本数=3,分布到 3 个 Broker 集群:

    分区 Leader 所在 Broker Follower1 所在 Broker Follower2 所在 Broker
    Partition 0 Broker 0 Broker 1 Broker 2
    Partition 1 Broker 1 Broker 2 Broker 0
    • 每个分区的副本总数:1 Leader + 2 Follower = 3。
    • 容错能力:容忍最多 2 个 Broker 宕机(N-1 原则,N=副本数)。

    # ⚠️ 四、注意事项

    1. 副本数上限:
      • 副本数 ≤ Broker 数量(例如 3 Broker 时,副本数最大为 3)。
      • 若超过则 Topic 创建失败(如 3 Broker 设置副本数=4 会报错)。
    2. Follower 的可用性:
      • 只有 ISR(In-Sync Replicas) 中的 Follower 才具备选举资格。
      • 若 Follower 同步滞后(超过 replica.lag.time.max.ms),会被移出 ISR 集合。
    3. 生产建议:
      • 副本数 ≥ 3:生产环境推荐配置,兼顾容错与成本。
      • 最小同步副本:设置 min.insync.replicas=2(配合 acks=all),确保消息写入至少 2 个副本(含 Leader)才返回成功。

    # 💎 总结

    副本数 = 1(Leader) + N(Follower)

    • Leader:唯一读写入口,承担服务压力;
    • Follower:纯备份角色,通过 ISR 机制保障故障切换的可靠性。

    合理配置副本数(如 3 副本)是 Kafka 实现高可用、数据持久化的核心设计。

    编辑 (opens new window)
    上次更新: 2025/06/24, 00:41:57
    我还是不明白副本数,请画出具体的分布图,3个broker,某个topic10个分区
    ​​ISR(In-Sync Replicas)是什么,最多有多少个,这个数量怎么得来的

    ← 我还是不明白副本数,请画出具体的分布图,3个broker,某个topic10个分区 ​​ISR(In-Sync Replicas)是什么,最多有多少个,这个数量怎么得来的→

    最近更新
    01
    集成loki
    07-04
    02
    TCP的ESTABLISHED是什么意思
    06-24
    03
    安装1panel
    06-24
    更多文章>
    Theme by Vdoing | Copyright © 2025-2025 plantre | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式