当前位置: 首页 > backend >正文

使用 kafka-console-consumer.sh 指定时间或偏移量消费

1、问题来源

在工作中需要观察上游生产的数据顺序和自己写的任务处理数据的顺序是否一致,尝尝需要将kafka中的指定时间或者偏移量开始的数据导出来分析,如果每次都导数据都是从头开消费导全量,往往少则几个G多则几十G的数据,导出容易卡死或者大文件传输很慢。

通过询问deepseek,推荐使用下列方案,然后就去实践是否可行

2、可选的方案

利用kafka安装包自带的./bin/kafka-console-consumer.sh来消费,省去各种找工具的烦恼

1) 根据时间来消费
# 首先重置偏移量
./bin/kafka-consumer-groups.sh --bootstrap-server <broker:port> --group export-test --topic <topic> --reset-offsets --to-datetime "2025-05-23T01:30:00.000" --execute
# 然后正常消费
./bin/kafka-console-consumer.sh --bootstrap-server <broker:port> --topic <topic> --group export-test > t.json
2) 根据偏移量来消费
./bin/kafka-console-consumer.sh --bootstrap-server <broker:port> --topic <topic> \
--partition <partition_number> --offset <offset_number> > t.json

注意:必须同时指定分区号才能使用 --offset 参数

3、最终方案

通过实践,采用根据时间来消费的方式,理由如下

1) 指定时间点的偏移量不好获取,需要多次尝试才能确定,浪费时间

2) 根据偏移量的方案需要指定分区号,多个分区的情况下需要重复好几遍,而且相同时间点在每个分区中中的偏移量不一致

3) 导出的数据中不含偏移量,每次重复定位很难精确,耗时耗力

采用根据时间来消费的方式需要注意的点

1) 执行第一步重置偏移量时指定的时间为标准UTC时区,北京时间为UTC+8(东八区),中国地区如果需要获取2025-05-23:09:30:00开始的消息,需要将--to-datetime 的时间设置为2025-05-23:01:30:00

2) 在执行命令中指定的消费者组名称千万不能和生产中使用的消费者组一样,也就是--group 后面的名称需使用测试的名称

3) 重置偏移量和后面的正常消费指定的的消费者组需一致

4、检查导出的消息是否准确

通过vim t.json查看导出的消息是否为预期的时间范围

http://www.xdnf.cn/news/8363.html

相关文章:

  • 【golang】能否在遍历map的同时删除元素
  • HTTP协议接口三种测试方法之-postman
  • LinkedList 与 ArrayList 的区别及使用场景
  • 想免费使用 AWS 云服务器?注册、验证及开通全攻略
  • NV054NV057美光固态闪存NV059NV062
  • 穿屏技巧:Mac-Windows一套鼠标键盘控制多台设备 (sharemouse6.0-Keygen)| KM-401A
  • 2025 全球优质 AI 产品深度测评:从通用工具到垂直领域的技术突围 —— 轻量聚合工具篇
  • Sentinel+OpenFeign实现服务熔断与降级:构建弹性微服务架构的核心实践
  • 响应面法(Response Surface Methodology ,RSM)
  • Go语言中内存释放 ≠ 资源释放
  • 【JVM 03-JVM内存结构之-虚拟机栈】
  • 二极管的伏安特性与主要参数
  • C++笔记-封装红黑树实现set和map
  • 【工具类】常用的工具类——CollectionUtil
  • 服务器数据迁移终极指南:网站、数据库、邮件无缝迁移策略与工具实战 (2025)
  • iOS 直播弹幕礼物功能详解
  • HarmonyOS 鸿蒙应用开发基础:转换整个PDF文档为图片功能
  • 【软考架构】2025系统架构设计师开坑指南——后端开发(科目选择,考试大纲,真题分析)
  • vue2组件对象传参
  • Minecraft Fabric - java.lang.NoClassDefFoundError HttpUriRequest
  • windows 下用yolov5 训练模型 给到opencv 使用
  • CSS padding(填充)
  • CSS2相关知识点
  • C语言拼接4字节数据为uint32_t
  • 【CSS学习笔记1】css基础知识介绍
  • 2025年开源大模型技术全景图
  • Mistral AI 开源最新 Small 模型——Devstral-Small-2505
  • 从源码编译支持ffmpeg(H264编码)的opencv(创建mp4视频报错:H264 is not supported with codec id 28)
  • 【动手学深度学习】2.3. 线性代数
  • AWS云与第三方通信最佳实践:安全、高效的数据交互方案