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

Kafka 中的 ISR 和 OSR:理解它们的重要作用

在深入了解 Kafka 这个强大的分布式消息系统时,我们经常会听到两个重要的概念:ISR(In-Sync Replicas)和 OSR(Out-of-Sync Replicas)。它们在 Kafka 的高可用性和数据可靠性方面发挥着至关重要的作用。今天,我们就来详细探讨一下 ISR 和 OSR 的作用分别是什么。

一、Kafka 简介

Kafka 是一种高吞吐量的分布式发布订阅消息系统,被广泛应用于大数据处理、流数据处理等场景。它具有高可靠性、高可扩展性和高性能等特点,能够有效地处理大量的实时数据。

二、ISR 的作用

  1. 保证数据可靠性

    • ISR 即同步副本集合,是指那些与 Leader 副本保持同步的 Follower 副本。
    • 当 Producer 向 Kafka 发送消息时,消息首先被写入 Leader 副本,然后 Leader 副本会将消息同步到 ISR 中的 Follower 副本。
    • 只有当 ISR 中的所有副本都成功写入消息后,这条消息才被认为是已提交的,此时 Consumer 才能读取到这条消息。
    • 这样可以确保即使 Leader 副本出现故障,也可以从 ISR 中的其他副本中选举出新的 Leader,从而保证数据不会丢失。
  2. 实现高可用性

    • 由于 ISR 中的副本与 Leader 副本保持同步,因此在 Leader 副本出现故障时,可以快速地从 ISR 中选举出新的 Leader,从而减少系统的停机时间,提高系统的可用性。
    • 同时,Kafka 还支持动态调整 ISR 的大小,当 Follower 副本的同步速度变慢时,它可能会被从 ISR 中移除;当 Follower 副本的同步速度恢复时,它又可以重新加入 ISR。

三、OSR 的作用

  1. 提供数据备份

    • OSR 即不同步副本集合,是指那些与 Leader 副本不同步的 Follower 副本。
    • 虽然 OSR 中的副本不能用于选举新的 Leader,但是它们仍然可以作为数据的备份,在需要的时候可以用于恢复数据。
    • 例如,当 ISR 中的副本全部出现故障时,可以从 OSR 中的副本中恢复数据,从而减少数据丢失的风险。
  2. 提高系统的可扩展性

    • OSR 中的副本可以在系统负载较低时进行同步,当系统负载增加时,可以将它们加入到 ISR 中,从而提高系统的处理能力。
    • 这样可以在不影响系统性能的情况下,实现系统的动态扩展。

四、总结

ISR 和 OSR 在 Kafka 中分别扮演着不同但都非常重要的角色。ISR 保证了数据的可靠性和高可用性,而 OSR 则提供了数据备份和提高系统可扩展性的功能。理解和正确使用 ISR 和 OSR 对于构建高可靠、高可用的 Kafka 系统至关重要。

文章(专栏)将持续更新,欢迎关注公众号:服务端技术精选。欢迎点赞、关注、转发


http://www.mrgr.cn/news/48280.html

相关文章:

  • SQL server学习07-查询数据表中的数据(下)
  • Java 创建线程的方式有哪几种
  • 基于Spring Boot的找律师系统
  • C语言 文件操作——按行读写文件
  • 过滤器和拦截器的区别详解
  • Dhatim FastExcel 读写 Excel 文件
  • flutter鸿蒙版本数据处理常用总集
  • Spring Boot集成Redis
  • 生成式人工智能助长更复杂的网络攻击
  • BlackMarket_ 1靶机渗透
  • 5.1串口DMA与接收不定长数据
  • 港股\美股\A股实时行情接入示例,WebSocket协议推送
  • C++常用库函数
  • 学习之高阶编程的内置函数
  • Python和C++及MATLAB低温磁态机器学习模型
  • JavaEE: 深入解析HTTP协议的奥秘(3)
  • 设计模式——工厂方法模式(2)抽象工厂模式(3)
  • 前端面试题“请说说你对 TS 中装饰器的理解“
  • 《标题的力量:在计算机科学中的多元应用》
  • Python从入门到高手6.2节-字符串操作符详解
  • 前端_003_js扫盲
  • 同步和异步的区别
  • 最大二进制奇数 。
  • 定位、地图建立及管理合集
  • 初级学习:Python实现AI并搭建
  • 低代码工单管理app评测,功能与效率解析