首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kafkacat在计算记录时在时间戳之间消耗错误的结果

Kafkacat在计算记录时在时间戳之间消耗错误的结果
EN

Stack Overflow用户
提问于 2022-09-26 11:52:03
回答 1查看 112关注 0票数 0

我想在两个时间戳之间计算给定的卡夫卡主题中的信息数量。我尝试使用kafkacat执行此操作,使用以下命令:

代码语言:javascript
复制
# START_DATE = 01.04.2022 02:00:00Z
# END_DATE = 01.04.2022 02:05:00Z
$ kafkacat -C -b broker:9092 -t mytopic -o s@1648778400000 -o e@1648778700000 -p 0 -f '[ts %T] [partition %p] [offset %o] %k\n' -e -c 1

实际上,这是在very similar question中列出的相同的方法。

根据kafkacat --help

代码语言:javascript
复制
Consumer options:
  -o <offset>        Offset to start consuming from:
                     beginning | end | stored |
                     <value>  (absolute offset) |
                     -<value> (relative offset from end)
                     s@<value> (timestamp in ms to start at)
                     e@<value> (timestamp in ms to stop at (not included))

相应地,我希望上面的命令给我第一个时间戳大于s@<value>,小于e@<value>的记录。但是,它反而给出了一个在s@<value>之前具有时间戳的记录(实际上,它只是给了分区0中的第一条记录):

代码语言:javascript
复制
# output of above command
[ts 1648692486141] [partition 0] [offset 2] 643b0013-b3e1-47a5-a9d3-7478c0e91ca4

我是否误解了消费者选择s@<value>e@<value>

Kafkacat版本:

代码语言:javascript
复制
Version 1.5.0 (JSON, librdkafka 1.2.1 builtin.features=gzip,snappy,ssl,sasl,regex,lz4,sasl_gssapi,sasl_plain,sasl_scram,plugins,sasl_oauthbearer)

此外,我看到了一些奇怪的行为,即使只有s@<value>。例如:

代码语言:javascript
复制
kafkacat -C -b broker:9092 -t mytopic -o s@1648778400000 -p 0 -f '[ts %T] [partition %p] [offset %o] %k\n' -e -c 1

据我理解,应该用record.timestamp ≥ 1648778400000输出第一条记录。实际产出不同:

代码语言:javascript
复制
[ts 1648692486141] [partition 0] [offset 2] 643b0013-b3e1-47a5-a9d3-7478c0e91ca4

并在我设置的时间戳之前包含一个时间戳(31.03.2022 02:08:06Z01.04.2022 02:00:00Z)。

当我使用docker run edenhill/kcat:1.7.1进行测试时,这个输出是相同的(上面是一个Ubuntu kafkacat)

EN

回答 1

Stack Overflow用户

发布于 2022-09-26 13:16:48

我不认为你能多次提供-o。因此,您的选择包括

代码语言:javascript
复制
-o e@1648778700000 -p 0  -c 1

从分区0读取一条消息,该分区小于时间戳1648778700000

若要正确地在时间戳之间使用,请查找开始时间戳的偏移量,将其提交给使用者组,然后使用结束时间戳启动组中的使用者。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73853753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档