apache-kafka - 状态存储更改日志主题的消费者是什么
问题描述
我有一个使用处理器 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状态存储,但这些数据存储都是本地的,应该可以快速检索。
我的问题是这个更改日志主题的消费者到底是什么?
解决方案
更改日志主题的消费者是恢复消费者。恢复消费者是内置于 Kafka Streams 中的 Kafka 消费者。与从源主题读取记录的主要消费者相比,恢复消费者负责从变更日志主题恢复本地状态存储,以防本地状态不存在或过期。基本上,它确保本地状态存储在失败后恢复。恢复消费者的第二个目的是使备用任务保持最新。
Kafka Streams 客户端中的每个流线程都有一个还原使用者。恢复消费者不是消费者组的成员,Kafka Streams 手动分配更改日志主题以恢复消费者。恢复消费者的偏移量不是在消费者偏移量主题__consumer_offsets
中作为主要消费者的偏移量进行管理,而是在 Kafka Streams 客户端的状态存储目录中的文件中进行管理。
推荐阅读
- amazon-ec2 - Aws IAM 组:在 Terraform 上的日志组上设置只读访问权限
- mapkit - 有什么方法可以用mapkit js全屏查看地图?
- intellij-idea - Intellij IDEA 突出显示所有出现的选定文本
- database - 是否有禁止用户、IP 地址或电子邮件的公共数据库?
- javascript - Webpack:需要('index.html')与仅复制 index.html
- jquery - 多次导入引导 js 不起作用打字稿
- apache-commons-email - 如何在 Apache Commons Email 1.4 中接收和区分常规附件和内联附件
- sql - SQL Server BCP 实用程序 - 导入时忽略列
- linear-algebra - 求解稀疏解的欠定方程组
- android - 想要在 React Native for Android 中实现粘性本地通知