问题如下:

kafka 为了保证数据的一致性使用了isr 机制

1 首先我们知道kafka 的数据是多副本的,每个topic 下的每个分区下都有一个leader 和多个follower,

2 每个follower 的数据都是同步leader的 这里需要注意 是follower 主动拉取leader 的数据

注意问题:follewer 只是数据的副本提供数据的可恢复性,本身和kafka 的读写性能无关(kafka的读写都是和leader 相关)

3 那么问题就出来了 虽然每个分区都有多个副本,但是如何确定副本的数据和leader 的数据是同步的?

isr 的全称是:In-Sync Replicas isr 是一个副本的列表,里面存储的都是能跟leader 数据一致的副本,确定一个副本在isr列表中,有2个判断条件

条件1:根据副本和leader 的交互时间差,如果大于某个时间差 就认定这个副本不行了,就把此副本从isr 中剔除,此时间差根据

配置参数rerplica.lag.time.max.ms=10000 决定 单位ms

条件2:根据leader 和副本的信息条数差值决定是否从isr 中剔除此副本,此信息条数差值根据配置参数rerplica.lag.max.messages=4000 决定 单位条

isr 中的副本删除或者增加 都是通过一个周期调度来管理的

4 kafka 根据isr 机制和消息的ack方式保证的数据的一致性和保证幂等性(消息是否会重复消费。发送等)

min.insync.replicas=n 配置参数表示 当满足了n个副本的消息确认(n默认为1,最好大于1,因为leader 也在isr 列表中),才认为这条消息是发送成功的

min.insync.replicas 参数只有配合request.required.acks =-1 时才能达到最大的可靠性

request.required.acks 的参数说明:

0:生产者只管发送,不管服务器,消费者是否收到信息

1:只有当leader 确认了收到消息,才确认此消息发送成功

-1:只有isr 中的n-1个副本(leader 除外所以n-1)都同步了消息 此消息才确认发送成功

注意生产者发送的消息只有在确认发送成功后 才能被消费者消费

思考如果所有的副本都挂掉了会如何?

kafka的isr理解相关推荐

  1. Kafka的 ISR 概念和作用

    一.ISR 是什么 首先,ISR 的全称叫做: In-Sync Replicas (同步副本集), 我们可以理解为和 leader 保持同步的所有副本的集合. 一个分区的所有副本集合叫做 AR( As ...

  2. I·See·Right 遇见kafka的ISR

    ​目录 1.kafka霸道性能之揭开日志底层存储的面纱 2.HW?LEO?你俩一起搞事情? 3.ISR机制底层如何设计? 这是2020年的第一篇文章,新的开始,与君共勉.前文小白简单的去剖析了肌霸先生 ...

  3. Kafka之ISR机制的理解

    Kafka对于producer发来的消息怎么保证可靠性? 每个partition都给配上副本,做数据同步,保证数据不丢失. 副本数据同步策略 和zookeeper不同的是,Kafka选择的是全部完成同 ...

  4. Kafka学习 之 理解Kafka集群(二)

    在学习之前,已经假设已经成功搭建了Kafka集群,开始下面的学习: 1. 理论学习 broker:生产环境中,一台服务器上只会安装一个 Kafka 软件,这台服务器就是一个 Kafka Server, ...

  5. Kafka的ISR收缩机制

    ISR什么时候收缩 ISR什么时候扩展 ISR的传播机制 Broker宕机之后怎么ISR的收缩? Kafka在启动的时候,会启动一个副本管理器ReplicaManager,这个副本管理器会启动几个定时 ...

  6. kafka HA ISR机制

    一.kafka replica 当某个topic的replication-factor为N且N大于1时,每个Partition都会有N个副本(Replica).kafka的replica包含leade ...

  7. kafka的isr机制

    Data Replication Kafka 的 Data Replication 需要解决如下问题: 怎样 Propagate 消息 在向 Producer 发送 ACK 前需要保证有多少个 Rep ...

  8. kafka(一)--概念理解

    目录 第一篇文章部分信息 什么是卡夫卡? 卡夫卡术语 Kafka 主题剖析 分区和代理 生产者 消费者和消费者团体 第二篇文章部分信息 2.Kafka文件存储机制 第一篇文章部分信息 原文:https ...

  9. Kafka学习笔记(一):Kafka基本概念理解

    ActiveMQ.RabbitMQ是用的比较多得消息队列,但是随着时间的推移,大数据的应运而生,这两种消息队列使用的也是越来越少了,Kafka渐渐进入开发人员的视线,再加上Kafka天生的集群运行.大 ...

最新文章

  1. 《C++ Primer Plus(第六版)》(17)(第十章 对象和类 编程题答案)
  2. 《Java大学教程》—第5章 数组
  3. 云计算被视为继计算机,8+第八章+计算机网络技术分析.ppt
  4. 最优化——单纯形法学习心得
  5. 基于AccessToken方式实现API设计
  6. 做一个好的搜索引擎有多难
  7. shell export 作用
  8. FFT(FastFourier Transform,快速傅立叶变换)
  9. 自助友情链接php源码,基于ThinkPHP内核开发的友情链接交易系统平台源码_支持在线支付宝及时到账支付...
  10. 关于卡巴斯基KEY被列入黑名单的问题
  11. vc red.msi matlab,vc red.msi x64+x32位版下载
  12. 电磁场知识回顾——求解方法汇总
  13. 支配树(Dominator Tree)
  14. 新一代最强开源UI自动化测试神器 Playwright - 元素定位
  15. 关于Odoo盘盈成本和计价法的讨论
  16. t20171215a1BILL的账单
  17. 超十万字_超详细SSM整合实践_手动实现权限管理
  18. 【react面试题】不可错过的react 面试题 「务必收藏」
  19. weautomate rpa开发心得
  20. php文件怎么打开? 教你用什么软件打开php文件

热门文章

  1. c++成员函数指针揭秘
  2. ASP.NET4.0中 ValidateRequest=false失效
  3. 编程王 kingofcoders.com
  4. Nodejs卸载与安装
  5. 每日C语言(The 7th day)——折半查找法
  6. 玩转Kubernetes—尝试以不同方式初始化集群
  7. eclipse配置python开发环境_Python开发环境配置步骤
  8. 【AI理论学习】对Transformer中Positional Encoding的理解
  9. IT行业技术知识分享说明
  10. jdk11手动安装jre