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

隨便 20241028 ISR 和 OSR 在 Kafka 中的详细解析

        在 Kafka 这个分布式流处理平台中,副本的管理和数据一致性是至关重要的。为了保证系统的高可用性和容错能力,Kafka 引入了两个关键的概念:ISR(In-Sync Replicas)OSR(Out-of-Sync Replicas)。下面将详细解析这两个概念及其在 Kafka 中的作用。

什么是 ISR(In-Sync Replicas)

        ISR 是指与 Leader 节点保持同步的副本列表。这些副本成功地复制了 Leader 上的所有消息,且在数据更新上与 Leader 保持一致。

  • 重要性:只有 ISR 中的副本被认为是安全的,能够提供高可用性。在 Leader 节点发生故障时,ISR 中的副本可以迅速被选为新的 Leader,从而继续处理消息和提供服务。
  • 动态更新:当 Follower 副本成功接收到 Leader 的消息时,它们会被添加到 ISR 中。如果 Follower 无法及时跟上 Leader(例如,因网络延迟或负载过重),它们会被移出 ISR。
什么是 OSR(Out-of-Sync Replicas)

        OSR 并不是 Kafka 官方文档中定义的一个正式副本列表,而是用来描述那些与 Leader 节点数据不一致、滞后的副本。OSR 指的是未能与 Leader 节点保持同步的副本。

  • 状态描述:OSR 的副本可能因多种原因落后于 Leader,例如网络问题、磁盘 I/O 性能不佳等。这些副本在系统故障时不能被选为新的 Leader,因为它们的数据不完整。
  • 恢复机制:当 OSR 副本成功追赶上 Leader 的更新后,它们可以被重新加入到 ISR 中。这个过程确保了系统在副本恢复时的高可用性和数据一致性。
ISR 和 OSR 之间的关系
  1. 动态性:副本的状态是动态变化的,随着数据的写入和同步情况的变化,副本会在 ISR 和 OSR 之间移动。比如,当 Follower 副本未能及时复制 Leader 的消息时,它们将从 ISR 中移除并转为 OSR。

  2. 高可用性保障:只有在 ISR 中的副本被认为是“健康的”,能够参与到 Leader 的选举中。这确保了系统的可靠性和容错能力。

  3. 数据一致性:ISR 中的副本确保了 Kafka 系统的数据一致性,消费者只能读取到 ISR 中的消息,而 OSR 中的消息则不被视为可用。

结论

        理解 ISR 和 OSR 在 Kafka 中的作用,对于确保系统的稳定性、可靠性和数据一致性至关重要。通过动态管理副本状态,Kafka 能够在面临故障时快速恢复并继续提供服务。

        如果想深入了解这些概念,建议参考 Kafka 的官方文档和技术博客,获取更详细的信息和实际应用案例。

  • Apache Kafka Documentation
  • Confluent Blog - Understanding Kafka Replication

http://www.kler.cn/a/373542.html

相关文章:

  • 【设计模式】如何用C++实现依赖倒置
  • git:将多个提交合并为一个
  • Linux 开机自动挂载硬盘
  • golang gin ShouldBind的介绍和使用
  • vue添加省市区
  • 理解 CSS 中的绝对定位与 Flex 布局混用
  • Nginx部署前端需要了解的知识
  • EfficientNet-B6模型实现ISIC皮肤镜图像数据集分类
  • 整合SSM框架(2)
  • 雷赛DMC5X10系列脉冲运动控制卡——机械原点和工作原点原理
  • BGP 及 4+ 的一些特性及配置笔记
  • 外包干了7天,技术明显退步。。。。。
  • Go:package
  • 传奇架设教程,M2报错无法找到城堡信息文件的解决方法
  • 【c++篇】:模拟实现string类--探索字符串操作的底层逻辑
  • oracle获取中文拼音/WB
  • isp框架代码理解
  • python debug作业
  • 前端vue2迁移至uni-app
  • 产品宣传册制作成电子产品宣传册用什么软件?
  • ollama 在 Linux 环境的安装
  • Leetcode 79 Word search
  • 保障农民工工资!我们这么做:
  • 前端面试题-token的登录流程、JWT
  • Django+Vue智慧分析居家养老系统统的设计与实现
  • 【Vulnhub靶场】DC-5