Kafka中的 ISR 机制

这篇具有很好参考价值的文章主要介绍了Kafka中的 ISR 机制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ISR 是什么

ISR 的全称叫做: In-Sync Replicas (同步副本集), 可以理解为和 leader 保持同步的所有副本的集合。ISR 动态维护了一个和 leader 副本保持同步副本集合,ISR 中的副本全部都和 leader 的数据保持同步。

设一个场景,有6个分区集合,分别为 [0,1,2,3,4,5],其中 leader-replica 是 0

其中 [1,2,3] 作为 follower 和 leader 的数据保持同步,而 [4,5] 未能和 leader 保持同步,那么此时,ISR=[0,1,2,3],OSR=[4,5]

如果此时副本 4 追上了 leader-replica,也就是和 leader 保持到了同步,那么此时,ISR=[0,1,2,3,4],OSR=[5]

ISR 的作用

我们知道了与 leader 保持同步的副本集后,可以做到哪些事情?

  • 当我们生产消息的时候,到底要写入多少副本才能算成功呢?
  • 当 leader 挂了之后,我们应该选择哪个 follower 来成为新的 leader 呢?

通过 ISR 就可以知晓了哪些 follower 与 leader 保持着同步,在写入消息的时候,设置写入处于 ISR 中所有的副本才算成功,在进行 leader 切换的时候,就可以从 ISR 中选择对应的 follower 成为新的 leader。

ISR 的作用是通过副本机制实现消息高可靠,服务高可用时,不可缺少的一环;这也是为什么讲到副本不得不提到 ISR 的原因。

总结

  • ISR 机制通过副本冗余机制,提供了 kafka 消息的高可靠性。
  • ISR 机制可以做到故障转移,保障服务的可用性。
  • ISR 平衡了主从架构下,复制方案的选择(同步 / 异步 / 少数服从多数),让使用者根据参数自行选择。

为什么要设计 ISR 机制

在一些中间件中,都有副本的概念,不同场景下写入数据时,要求写入副本的个数也不尽相同。例如 zk 中要求写入的节点个数大于一半才算成功,或者有些要求高可靠性的场景,规定写入所有副本才能算成功。

而 kafka 的 ISR 可以允许生产消息时,根据自己的业务场景自行配置 ACK 确认机制达到想要的效果:

  • acks=0:生产者发了就算完了,后续成不成功我都不管,这种设置下消息的高可靠性几乎没有保障,但是却有着极大的吞吐量
  • acks=1:消息写入主节点就算成功,这种设置,可以保障一定的高可靠性,也具有不错的吞吐量
  • acks=-1或all:消息必须写入 ISR 中所有的副本才算成功,这种设置下,就能提供较高的高可靠性,但是吞吐量就相对较低

ISR 虽然是动态伸缩的,可能会出现 follower 全部都挂了的情况,如果 ISR 中只剩下 leader,那么此时设置 acks=all 就等价于 acks=1 了。这样就会对高可靠性要求的场景产生危险。

kafka 提供了 min.insync.replicas 参数配置,这个参数可以配置最少 ISR 中需要多少个副本,才能继续提供写服务。如果设置为 2,一旦 ISR 中的个数小于 2,那么就不再提供写服务,牺牲一定的可用性,来保障这种高可靠的场景需求。

总结

ISR 机制的存在是 kafka 为了平衡可靠性和可用性,不指定提供高可靠或者高可用的服务,而是将决定权交给了使用者,让使用者通过参数来控制,到底要实现什么程度的高可靠与高可用。文章来源地址https://www.toymoban.com/news/detail-673035.html

到了这里,关于Kafka中的 ISR 机制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Kafka的Replication策略和ISR同步机制

    目录 replication replication复制机制 同步复制 异步复制 ISR

    2024年02月13日
    浏览(37)
  • Kafka 的 replica 同步机制(ISR与OSR列表数据相互转换)

    注:ISR与OSR列表数据是存储在Zookeeper的Partition中的(一个Topic可能会配置多个partition)。 一、Kafka副本 Kafka中主题的每个Partition有一个预写式日志文件,每个Partition都由一系列有序的、不可变的消息组成,这些消息被连续的追加到Partition中,Partition中的每个消息都有一个连续

    2024年04月28日
    浏览(27)
  • 【项目实战】Kafka 分区中的AR、ISR、OSR

    👉 博主介绍 : 博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家,51CTO TOP红人 Java知识图谱点击链接: 体系化学习Java(Java面试专题) 💕💕 感兴趣的同学可以收藏关注下 , 不然下次找不到哟

    2024年02月16日
    浏览(35)
  • Kafka 入门到起飞 - 生产者参数详解 ,什么是生产者确认机制? 什么是ISR? 什么是 OSR?

    上回书我们讲了,生产者发送消息流程解析传送门 那么这篇我们来看下,生产者发送消息时几个重要的参数详解 ,什么是生产者确认机制? 什么是ISR? 什么是 OSR? bootstrap.servers : Kafka 集群地址 host1:port1,host2:port2,host3:port3 不需要写Kafka集群中全部的broker地址,但是也不要写

    2024年02月15日
    浏览(36)
  • kafka--kafka基础概念-ISR详解

    主要是讲 主 往 从同步中的问题 当绿色P1接收到写入的数据,要同步到紫色的P1S1和P1S2 如何保证一致性呢? 使用In Sync Replicas 也就是ISR概念 为什么不一致的? 因为P1S1同步数据 可能花费 50ms P1S2可能花费60ms 同步完的进入ISR集合, 同步时间是可以设置规定时间的(容忍时间)

    2024年02月12日
    浏览(38)
  • Kafka之分区副本与ISR

    Kafka的Topic分区本质是一个用于存储Topic下的消息的日志,但是只存一份日志会因为机器损坏或其他原因导致消息丢失不可恢复, 因此需要多个相同的日志作为备份,提高系统可用性,这些备份在kafka中被称为副本(replica)。 kafka将分区的所有副本均匀的分配到所有broker上,并从

    2024年02月04日
    浏览(37)
  • 分布式 - 消息队列Kafka:Kafka 副本|AR|ISR|OSR|Leader|Follower|HW|LEO

    01. Kafka 复制 1. kafka 副本的分类 Kafka经常被描述成“一个分布式、分区、可复制的提交日志服务”。复制之所以这么重要,是因为它可以在个别节点失效时仍能保证Kafka的可用性和持久性。Kafka的数据保存在主题中,每个主题被分成若干个分区,每个分区可以有多个副本。副本

    2024年02月09日
    浏览(46)
  • Kafka - AR 、ISR、OSR,以及HW和LEO之间的关系

    AR(Assigned Replication): 分区中的所有副本统称为AR(Assigned Replicas) ISR(In-Sync Replicas):同步副本集合 ISR是指当前与主副本保持同步的副本集合。当主副本发生故障时,Kafka会从ISR中选举一个新的主副本来接管工作。因此,ISR的大小对于分区的可用性和性能至关重要。如果

    2024年02月16日
    浏览(34)
  • (Kafka源码三)Kafka的缓存机制

    在Kafka的架构中,若没有缓存机制,在RecordAccumulator中对于不再使用的批次对象,需要进行回收,释放这些对象所占用的内存,为了降低GC的压力,Kafka作者设计了一个缓存池的机制,从而实现了实现消息批次的内存复用。本文主要讲解缓冲池的设计。 首先来看下kafka生产者到

    2024年04月15日
    浏览(26)
  • 详解Kafka分区机制原理|Kafka 系列 二

    Kafka 系列第二篇,详解分区机制原理。为了不错过更新,请大家将本号“ 设为星标 ”。 点击上方“后端开发技术”,选择“设为星标” ,优质资源及时送达 上一篇文章介绍了 Kafka 的基本概念和术语,里面有个概念是 分区(Partition)。 kafka 将 一个Topic 中的消息分成多份,分

    2024年02月14日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包