kafka如何存储每个主题的偏移量?

20jt8wwn  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(611)

在投票Kafka时,我订阅了多个主题使用 subscribe() 功能。现在,我想设置每个主题的阅读偏移量,而不必在每次阅读后重新订阅 seek() 以及 poll() 从一个主题。威尔呼叫 seek() 对每个主题名进行迭代,然后再轮询数据以获得结果?Kafka究竟是如何存储偏移量的?
我每个主题有一个分区,只有一个使用者可以阅读所有主题。

q7solyqu

q7solyqu1#

Kafka如何存储每个主题的偏移量?
Kafka将偏移存储从zookeeper转移到了Kafka代理。原因如下:
zookeeper不是一个很好的方法来处理高写负载,比如偏移量更新,因为zookeeper将每个写路由到每个节点,因此没有能力分区或缩放写。我们一直都知道这一点,但是选择这个实现作为一种“方便的结合”,因为我们已经依赖zk了。
kafka将提交的偏移量存储在一个主题中,当使用者提交偏移量时,kafka会将提交偏移量消息发布到一个“提交日志”主题,并保留一个内存结构,将组/主题/分区Map到最新的偏移量,以便快速检索。更多的设计信息可以在本页中找到有关抵消管理。
现在,我想设置从每个主题读取的偏移量,而不必在每个主题的seek()和poll()之后重新订阅。
有一个关于Kafka管理工具重置偏移的新功能。

kafka-consumer-group.sh --bootstrap-server 127.0.0.1:9092 --group
      your-consumer-group**--reset-offsets**--to-offset 1 --all-topics --execute

您可以使用更多选项。

相关问题