kafka新版本为了解决HW&LEO的同步机制更新缺陷,引入了Epoch的概念。 Leader epoch 分两部分组成:

Epoch : 版本号。每当副本领导权发生变更时,都会增加该版本号。小版本号的 Leader 被认为是过期 Leader,不能再行使 Leader 权力。起始位移(Start Offset)。Leader 副本在该 Epoch 值上写入的首条消息的位移。

Leader epoch(1, 120) 说明这个leader 的版本号为1,版本的起始位置是 第120条消息开始的 Kafka Broker 会在内存中为每个分区都缓存 Leader Epoch 数据,同时它还会定期地将这些信息持久化到一个 checkpoint 文件中。 当 Leader 副本写入消息到磁盘时,Broker 会尝试更新这部分缓存。如果该 Leader 是首次写入消息,那么 Broker 会向缓存中增加一个 Leader Epoch 条目,否则就不做更新。 这样,每次有 Leader 变更时,新的 Leader 副本会查询这部分缓存,取出对应的 Leader Epoch 的起始位移,以避免数据丢失和不一致的情况。 Kafka通过ISR的同步机制及优化策略,用 HW & LEO的方式很好的确保了数据不丢失以及吞吐率。

kafka的epoch相关推荐

  1. 【Flink】kafka FlinkKafkaException send data to Kafka old epoch newer producer same transactionalId

    文章目录 1.场景1 1.1 概述 2.场景2 M.参考 1.场景1 1.1 概述 重复问题:[Flink]kafka INVALID_PRODUCER_EPO send data to Kafka ...

  2. 【Flink】kafka INVALID_PRODUCER_EPO send data to Kafka old epoch newer producer same transactionalId

    文章目录 1.场景1 1.1 原因 1.2 解决 1.3 源码 2.类似问题 1.场景1 问题重复:[Flink]kafka FlinkKafkaException send data to Kafk ...

  3. kafka 出现Java heap space的解决方法

    问题: 测试环境异常,经过查看server.log日志,发现:java.lang.OutOfMemoryError: Java heap space,具体如下: server.log: [2021-0 ...

  4. kafka中的ISR、AR又代表什么?ISR伸缩又是什么?

    kafka中的ISR.AR又代表什么?ISR伸缩又是什么? ​ 分区中的所有副本统称为AR(Assigned Repllicas).所有与leader副本保持一定程度同步的副本(包括Leader)组成 ...

  5. Kafka 核心源码解读【三】--Controller模块

    文章目录 1 Controller元数据:Controller都保存有哪些东西?有几种状态? 1.1 案例分享 1.2 集群元数据 (1)ControllerStats (2)offlineParti ...

  6. Error:KafkaStorageException打开的文件过多

    问题描述,在Flink集群大数据处理过程中,向Kafka进行生产数据和消费数据:如果Flink处理过程中出现异常,采取相应的重启机制或设置检查点策略:项目启动后,随着设备接入越来越多,kafka的to ...

  7. 大牛deep learning集合

    作者1:tornadomeet 出处:http://www.cnblogs.com/tornadomeet 作者1:denghp83 出处:http://blog.csdn.net/denghp83/ ...

  8. Kafka HW及Epoch

    引用:HW与Epoch的讨论 HW存在的意义:(为了保持副本间可消费数据一致的标记) 保证多个副本之间的数据一致,否则因为同步的延迟的问题会出现多个副本间数据不一致的问题. 如果Leader重新选举, ...

  9. Kafka(Go)教程(十二)---Kafka 中的高水位和 Leader Epoch 机制

    来自:指月 https://www.lixueduan.com 原文:https://www.lixueduan.com/post/kafka/12-hw-leader-epoch/ 本文解释了 Ka ...

最新文章

  1. mysql如何查看事务日记_MySQL中的几种日志了解
  2. python入门需要多久-零基础小白多久能学会python
  3. 1.21 实例:统计商品信息
  4. Python---udp绑定信息以及网络通信过程
  5. Zuul 查看所有路由路径与filter(过滤器)
  6. mac os 切换网络优先级
  7. WEB前端 javascript、php关键字搜索函数的使用方法
  8. swagger内部类_API管理工具Swagger介绍及Springfox原理分析
  9. 在spring中使用JdbcTemplate进行数据库管理操作
  10. vivo又有新机跑分曝光 机海战术要来了?
  11. 实战oracle 12c 处理索引坏块一例
  12. 工作7年开发小哥转行测试:只有努力向前奔跑,才能得到你要的~
  13. UVAlive3662 Another Minimum Spanning Tree 莫队算法
  14. 易建科技eKing Cloud招聘,快到碗里来~
  15. 智慧消防:如何利用智能化手段,精准防控消防风险?
  16. java excel 批注_Excel里“批注”的各项操作介绍
  17. 不是python文件打开的合法模式组合是_以下选项中,不是Python文件打开的合法模式组合是:...
  18. iphone手机配置qq邮箱服务器设置,在iPhone中如何设置qq邮箱
  19. 掘金chrome插件安装失败怎么办?
  20. 自定义原生jsonp跨域请求

热门文章

  1. 在java中使用FFmpeg将图片和音频合成视频
  2. 使用Excel和Matlab批量修改图片名称
  3. 批量修改照片名称的快速方法
  4. 解决使用阿里巴巴iconfont页面显示小方块问题
  5. strtus1 html5,struts1.x的入门级学习教程
  6. JavaScript实现贷款利息计算器
  7. csdn 群发 粉丝 博文 博客
  8. lammps胶体输出的日志文件
  9. 40vf什么意思_LED的基本术语VF
  10. Python--异常处理笔记