当前位置: 首页 > news >正文

Kafka多副本机制

副本和副本因子

Kafka 会为每个 Partition 创建多个副本。这些副本分布在不同的 Broker 上。副本确保了数据的冗余存储,即使某个 Broker 宕机或失效,其他副本可以继续提供服务。

副本因子指的是每个 Partition 有多少个副本。副本因子的设置决定了一个 Partition 会有多少个副本,默认情况下副本因子为 3,表示每个 Partition 有 3 个副本。

Kafka中的副本类型

Leader副本

每个 Partition 都有一个 Leader 副本,它负责处理所有的生产(写入)和消费(读取)请求。所有的生产者和消费者都与 Leader 副本交互,读写操作都通过 Leader 来完成。

Follower副本

其余副本为 Follower 副本,它们被动地从 Leader 副本同步数据。Follower 副本不会直接处理读写请求,只是复制 Leader 副本上的数据。

副本间的数据同步

Follower 副本通过 日志复制 从 Leader 副本获取数据。Kafka 使用 Zookeeper(在新版的 Kafka 中,也可以使用 Kafka 自身的控制器机制)来协调 Leader 和 Follower 副本的同步。Follower 副本会从 Leader 副本拉取数据并存储,确保副本数据一致。Kafka 提供了 同步复制异步复制 机制。

同步复制

指的是在写入数据时,Leader 副本会等待所有同步副本(包括 Follower 副本)确认已经成功接收到数据后,再向生产者返回成功响应。这种方式保证了数据的一致性,但可能会导致较高的延迟。

异步复制

Leader 副本在写入数据后,可以立即返回给生产者,而不等待 Follower 副本的确认。这样可以提高性能,但可能导致数据在某些副本未同步完成时发生故障的情况,造成数据丢失。

副本选举(ISR机制)

Leader 副本会根据 ISR(In-Sync Replicas) 列表来决定哪些副本是最新的。如果 Leader 副本失败,Kafka 会自动从 ISR 中选举一个新的 Leader 副本,继续处理请求,避免服务中断。

ISR(In-Sync Replicas)

ISR表示当前与 Leader 副本保持同步的副本列表。所有同步副本都必须落后于 Leader 副本的数据最大延迟才能被视为 ISR。换句话说,ISR 列表中的副本必须在一定的时间窗口内完成数据的同步才能继续作为可用副本。

副本追赶:如果某个 Follower 副本未能及时同步数据,它会被移出 ISR 列表。只有重新赶上 Leader 副本的数据之后,才能重新进入 ISR 列表。

ISR 保证了 Kafka 的数据一致性和容错能力,只有处于 ISR 列表中的副本才有资格成为新的 Leader 副本。这样,Kafka 可以确保即使发生 Broker 故障,也能快速恢复服务。

http://www.dtcms.com/a/251074.html

相关文章:

  • React 实现卡牌翻牌游戏
  • 小记:把react项目从web迁移到electron
  • 蒸馏微调DeepSeek-R1-Distill-Qwen-7B
  • Leetcode 刷题记录 16 —— 栈
  • [windows工具]OCR识文找图工具1.2版本使用教程及注意事项
  • [windows工具]OCR多区域识别导出excel工具1.2版本使用教程及注意事项
  • Unity3D仿星露谷物语开发63之NPC移动
  • XR-RokidAR-ADB环境搭建
  • OpenSpeedy:让游戏体验“飞”起来的秘密武器
  • 【Shader学习】完整光照效果
  • Unity基础-范围检测
  • 【Quest开发】初始项目环境配置
  • 用c语言实现简易c语言扫雷游戏
  • 嵌入式硬件篇---常见电平标准
  • NJet Portal 应用门户管理介绍
  • 实时操作系统(FreeRTOS、RT-Thread)RISC-V
  • 基于SpringBoot和Leaflet的电影票房时序展示-以《哪吒2》为例
  • Django图片管理系统
  • 在idea上打包DolphinScheduler
  • VTK 显示大量点云数据及交互(点云拾取、着色、测量等)功能
  • SAP实施服务专家——哲讯科技,赋能企业智慧升级
  • RTDETRv2 pytorch 官方版自己数据集训练遇到的问题解决
  • SQL Server 2025 预览版发布:AI深度集成、开发者体验飞跃与混合云新篇章
  • Composer 的 PHP 依赖库提交教程
  • Linux安装LLaMA Factory
  • Python数字信号处理——利用块间系数相关性的DCT域鲁棒盲图像水印(PyQT5界面)
  • linux云计算学习第八周,第九周
  • sqli-labs靶场54-65关(次数限制,数据更新)
  • Python爬虫实战:研究Mr. Queue相关技术
  • 【图像处理入门】7. 特征描述子:从LBP到HOG的特征提取之道