背景:因下游服务还没做好,所以下游服务暂时停机了,上游一直往kafka发送消息,打算下游上线时能直接接上停机前的位置,于是把topic的retention.ms设置成了2周,保证log不过期,过了两天想查看下topic堆积情况(怎么查看可看另一篇文章),结果根据group查不到分区与消费者绑定关系了,offset信息就也不存在了

[xuhaixing@xhx151 kafka_2.13-2.7.0]$ kafka-consumer-groups.sh --bootstrap-server http://192.168.94.151:9092 --describe --group goods-sync-groupError: Consumer group 'goods-sync-group' does not exist.

抱着试一试的态度,把消费者启动了下,真的是从最新位置开始消费的。

问题分析

当时只把日志过期时间调大了,以为消费者的offset信息会一直保存直到日志过期,后来经查看资料,offset过期时间也是单独配置的offsets.retention.minutes

官网有如下描述,2.0.0版本后,offset过期时间由1天变成了7天。

Notable changes in 2.0.0
KIP-186 increases the default offset retention time from 1 day to 7 days. This makes it less likely to “lose” offsets in an application that commits infrequently. It also increases the active set of offsets and therefore can increase memory usage on the broker. Note that the console consumer currently enables offset commit by default and can be the source of a large number of offsets which this change will now preserve for 7 days instead of 1. You can preserve the existing behavior by setting the broker config offsets.retention.minutes to 1440.

所以,日志不过期并不能保证消费者停止后,还能从以前的offset继续消费。

解决

  1. 消费者启动时,指定从某个offset开始消费,或者从某个时间戳开始消费。
  2. 消费者pause住,然后再resume,此种情况下消费者不消费消息,但是一直和broker间有心跳。
  3. 调大broker端参数offsets.retention.minutes,可以保持和log过期时间一致

当时想投机取巧一下不想改代码,没想到还是改代码了。

更多优质内容,请关注公众号:程序员星星toC

kafka消费者停止2天offset元信息丢失相关推荐

  1. Kafka消费者APi

    Kafka客户端从集群中消费消息,并透明地处理kafka集群中出现故障服务器,透明地调节适应集群中变化的数据分区.也和服务器交互,平衡均衡消费者. public class KafkaConsumer ...

  2. kafka消费者接收分区测试

    [README] 本文演示了当有新消费者加入组后,其他消费者接收分区情况: 本文还模拟了 broker 宕机的情况: 本文使用的是最新的 kafka3.0.0 : 本文测试案例,来源于 消费者接收分区 ...

  3. kafka消费者开发方式小结

    [README] 1, 本文总结了 kafka消费者开发方式: 2, 本文使用的是最新的kafka版本 3.0.0: [1] kafka消费则 [1.1]消费者与消费者组 1)消费者: 应用程序需要创 ...

  4. (转)Kafka 消费者 Java 实现

    转自: Kafka 消费者 Java 实现 - 简书应用程序使用 KafkaConsumer向 Kafka 订阅 Topic 接收消息,首先理解 Kafka 中消费者(consumer)和消费者组(c ...

  5. kafka消费者如何读同一生产者消息_Kafka系列3:深入理解Kafka消费者

    上面两篇聊了Kafka概况和Kafka生产者,包含了Kafka的基本概念.设计原理.设计核心以及生产者的核心原理.本篇单独聊聊Kafka的消费者,包括如下内容:消费者和消费者组 如何创建消费者 如何消 ...

  6. Kafka消费者原理解析

    文章目录 消费者和消费组 创建Kafka消费者 rebalance 分区再均衡 rebalance触发时机 rebalance 分区分配策略 rebalance generatian rebalanc ...

  7. Kafka快速入门(Kafka消费者)

    Kafka 消费者 1. Kafka 消费方式 2 Kafka 消费者工作流程 2.1 消费者总体工作流程 2.2 消费者组原理 Consumer Group(CG):消费者组,由多个consumer ...

  8. Kafka消费者——从 Kafka读取数据

    应用程序使用 KafkaConsumer向 Kafka 订阅主题,并从订阅的主题上接收消息 . 从 Kafka 读取数据不同于从其他悄息系统读取数据,它涉及一些独特的概念和想法.如果不先理解 这些概念 ...

  9. Kafka消费者详解

    一.基本概念 1.消费者和消费组 Kafka消费者是消费组的一部分,当多个消费者形成一个消费组来消费主题时,每个消费者会收到不同分区的消息.假设有一个T1主题,该主题有4个分区:同时我们有一个消费组G ...

最新文章

  1. 哈佛新研究登上Science封面:这个机械外骨骼,是一条“轻功”短裤
  2. python与数学的故事_我与数学的故事作文800字
  3. mysql物理备份工具Xtrabackup安装配置
  4. django中间件及中间件实现的登录验证
  5. 如何利用System.Net.Mail类发送EMAIL
  6. toastr-min.css,Toastr插件提示框使用说明
  7. SQL那些事儿(二)
  8. LeetCode刷刷记录
  9. ps放大素色图标(黑色特别有效)
  10. 知名清理工具或成恶意软件
  11. 多模模块接单模光纤跳线/单模模块接多模光纤跳线
  12. OOM and SOF
  13. Chrome浏览器断网时的小恐龙dino怎么一直玩?
  14. 2022-2027年中国心血管病医院行业市场深度分析及投资战略规划报告
  15. 1768 Problem A 算法7-15:迪杰斯特拉最短路径算法
  16. pppoe拨号.bat
  17. 猫眼电影票房爬取到MySQL中_爬虫之爬取猫眼电影专业版实时数据排行榜
  18. 智慧路灯行业市场规模有多大?
  19. (SQL入门详解)每天十分钟。10天搞定SQL
  20. C,数组声明、初始化,不初始化会如何?

热门文章

  1. 海豚社区阶段性开发总结
  2. Proxmark3 GUI
  3. 为什么王兴雷军他们能二次创业成功
  4. 22 个必知编程语言之「Kotlin」
  5. java泛型方法的结构及使用
  6. 5G 时代音视频开发前景怎么样?音视频开发需要掌握哪些技术?
  7. 所谓的2012世界末日预言-请勿恐慌,一切照常
  8. 6、TELNET终端设计与实现
  9. springboot模板制作
  10. 英特尔On技术创新峰会:面向开发者隆重推出全新产品、技术和工具