kafka-关于ISR-概述

一. 什么是ISR ?

Kafka 中通常每个分区都有多个副本,其中一个副本被选举为 Leader,其他副本为 Follower。ISR 是指与 Leader 副本保持同步的 Follower 副本集合。ISR 机制的核心是确保数据在多个副本之间的一致性和可靠性,同时在 Leader 副本出现故障时能够快速进行故障转移,保证服务的可用性。

二. ISR 基本原理:

  1. 数据同步过程:

首先: 生产者发送的消息首先会被 leader 副本接收,leader 副本会将消息写入本地日志文件,并更新其偏移量。follower 副本会定期向 leader 副本发送 fetch 请求,拉取新的消息。follower 副本在收到消息后,会将其写入本地日志文件,并更新自己的偏移量。如果 Follower 副本能够及时地从 leader 副本拉取到数据,并将其成功写入本地日志,那么该 follower 副本就被认为是与 leader 副本保持同步的,会被包含在 ISR 集合中。

  1. ISR 变更:

当一个新的 follower 副本启动并开始从 leader 副本拉取数据时,如果它能够在一定时间内跟上 leader 副本的进度,即它的日志偏移量与 leader 副本的差距在允许范围内,那么它就会被添加到 ISR 集合中。 反之,如果某个 follower 副本由于网络故障、磁盘故障等原因,导致它与 leader 副本的差距超过了一定的阈值,那么它就会被从 ISR 集合中移除。当 follower 副本恢复正常后,会尝试重新追赶 leader 副本,一旦追上,又会被重新加入到 ISR 集合中。

  1. 选举与故障转移

选举:当 leader 副本出现故障时,kafka 会从 ISR 集合中选举一个 follower 副本作为新的 leader。通常选择 ISR 中日志偏移量最大的 follower 作为新 leader,因为它的数据与原 leader 最为接近,能够最大程度地保证数据的一致性。新的 leader 选举出来后,它会等待 ISR 中的其他副本将数据同步到自己的高水位,然后才会开始处理新的消息。这样可以确保在故障转移过程中,已经被 ISR 中的所有副本确认的消息不会丢失,从而保证了数据的一致性。

  1. 涉及到的配置参数:

replica.lag.time.max.ms:用于配置 follower 副本与 leader 副本之间允许的最大延迟时间。如果 follower 副本在这个时间内没有向 leader 副本发送 fetch 请求或者没有跟上 leader 副本的进度,那么它将被认为是滞后的,并可能会被移出 ISR 集合。默认值是 10000 毫秒。

replica.lag.max.messages:follower 副本与 leader 副本之间允许的最大消息滞后数量。如果 follower 副本落后 leader 副本的消息数量超过了这个阈值,它也可能会被移出 ISR 集合。

三. 查看ISR信息:

查看某个topic的分区,ISR信息:

复制代码
bin/kafka-topics.sh --describe --bootstrap-server 10.139.3.100:9092 --topic xxxx

​​​​​​​


深耕运维行业多年,擅长linux、容器云原生、运维自动化等方面。

欢迎沟通交流!

(V: xiaoxiangbj2013 ) !

相关推荐
却道天凉_好个秋6 小时前
系统架构设计(九):分布式架构与微服务
分布式·架构·系统架构
predisw10 小时前
kafka connect 大概了解
分布式·kafka
计算机毕设定制辅导-无忧学长12 小时前
RabbitMQ 快速上手:安装配置与 HelloWorld 实践(二)
分布式·rabbitmq·ruby
啾啾Fun12 小时前
【Java微服务组件】分布式协调P1-数据共享中心简单设计与实现
java·分布式·微服务
梦想画家15 小时前
Scrapy进阶实践指南:从脚本运行到分布式爬取
分布式·scrapy·数据工程
东阳马生架构16 小时前
Seata源码—5.全局事务的创建与返回处理二
分布式·seata·分布式事务
张伯毅17 小时前
Flink SQL 将kafka topic的数据写到另外一个topic里面
sql·flink·kafka
掘金-我是哪吒17 小时前
分布式微服务系统架构第133集:运维服务器6年经验,高并发,大数据量系统
运维·服务器·分布式·微服务·系统架构
尘世壹俗人20 小时前
hadoop.proxyuser.代理用户.授信域 用来干什么的
大数据·hadoop·分布式
白露与泡影20 小时前
基于Mongodb的分布式文件存储实现
分布式·mongodb·wpf