javakafka通过唯一键获取分区中的消息偏移量

rsl1atfo  于 2021-06-06  发布在  Kafka
关注(0)|答案(2)|浏览(335)

如果我的所有kafka消息都包含一个唯一密钥,那么在代理程序的分区中用唯一密钥查询消息的偏移量的最快方法是什么?假设我已经知道这个消息必须存在于这个代理和这个分区中。
例如,我可以考虑的一种方法是重新处理分区内的所有消息,然后停止,直到找到特定的键为止。但是如果你有超过一百万条信息,处理每一条都是浪费时间。
换句话说,有没有kafkaapi可以直接在kafka服务器上执行此检查?

koaltpgm

koaltpgm1#

我建议使用Kafka流:
使用kstream.transform()并通过processorcontext访问消息偏移量。然后在结果之上构建ktable或使用交互式查询。

nwnhqdif

nwnhqdif2#

Kafka的工作原理和你想象的一样,它按顺序阅读信息。你不能直接去一些记录。但是你能做的是为这个主题创建许多分区,然后通过有一个键你知道什么是分区(你必须用google搜索它如何获得分区号),然后你只使用这个分区。所以说如果你有 1 000 000 在一个主题中记录,然后如果 100 分区,只需扫描 10 000 记录并找到你的。

相关问题