state store changelog主题的使用者是什么

vh0rcniy  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(338)

我有一个使用处理器api更新状态存储的拓扑,配置为复制因子3,acks=all

Topologies:
   Sub-topology: 0
    Source: products-source (topics: [products])
      --> products-processor
    Processor: products-processor (stores: [products-store])
      --> enriched-products-sink
      <-- products-source
    Sink: enriched-products-sink (topic: enriched.products)
      <-- products-processor

我的监视显示源主题的延迟非常小(<100条记录),但是支持存储的changelog主题的延迟非常大,大约有数百万条记录。
我试图找出这个changelog主题延迟的根本原因,因为我没有在这个处理器中发出任何外部请求。有对rocksdb状态存储的调用,但这些数据存储都是本地的,检索起来应该很快。
我的问题是,这个变更日志主题的使用者到底是什么?

biswetbf

biswetbf1#

changelog主题的使用者是还原使用者。还原使用者是构建到kafka流中的kafka使用者。与从源主题读取记录的主使用者不同,还原使用者负责从changelog主题还原本地状态存储,以防本地状态不存在或过期。基本上,它可以确保本地状态存储在发生故障后恢复。恢复使用者的第二个目的是使备用任务保持最新。
kafka streams客户端中的每个流线程都有一个还原使用者。还原使用者不是使用者组的成员,kafka streams手动分配changelog主题以还原使用者。还原使用者的偏移量不在使用者偏移量主题中管理 __consumer_offsets 作为主要使用者的偏移量,但位于kafka streams客户端的状态存储目录中的文件中。

相关问题