apache-kafka - state store changelog 主题的消费者是什么

标签 apache-kafka apache-kafka-streams

我有一个使用更新状态存储的处理器 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 条记录)的延迟很小,但是支持商店的变更日志主题有明显的延迟,大约有数百万条记录。

我正在尝试找出此更改日志主题滞后的根本原因,因为我没有在此处理器中发出任何外部请求。有对 rocksdb state stores 的调用,但这些数据存储都是本地的,应该可以快速检索。

我的问题是这个更改日志主题的消费者到底是什么?

最佳答案

变更日志主题的消费者是恢复消费者。还原消费者是内置于 Kafka Streams 中的 Kafka 消费者。与从源主题读取记录的主要消费者不同,恢复消费者负责从更改日志主题恢复本地状态存储,以防本地状态不存在或过时。基本上,它确保本地状态存储在故障后恢复。恢复消费者的第二个目的是保持stand-by tasks最新的。

Kafka Streams 客户端中的每个流线程都有一个恢复消费者。恢复消费者不是消费者组的成员,Kafka Streams 手动分配变更日志主题以恢复消费者。恢复消费者的偏移量不在消费者偏移量主题 __consumer_offsets 中作为主要消费者的偏移量进行管理,而是在 Kafka Streams 客户端的状态存储目录中的文件中进行管理。

关于apache-kafka - state store changelog 主题的消费者是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65041551/

相关文章:

java - Spring Kafka集成测试写入高水印文件时出错

apache-kafka-streams - 如何收到有关 GlobalKTable 状态存储更新的通知?

java - 如何一次将记录转发到多个 Kafka Stream 子处理器?

java - 使用 Kafka Streams 处理复杂的 Avro 消息

apache-kafka - 卡夫卡流: Stream Thread vs Partition of multiple topics

java - 如何在实现 GlobalKTable 之前过滤掉不需要的记录?

python - Kafka Producer配置重试策略

apache-spark - 来自 Kafka 源的 Spark Streaming 返回检查点或倒带

apache-kafka - 设计 Kafka 主题 - 多主题 vs 一个大主题

apache-kafka - 重启后Kafka主题不再存在