本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在分布式模式下运行的 Apache Kafka Connect 应用程序使用 Kafka 集群中的内部主题和组成员资格来存储其状态。以下是与用于 Kafka Connect 应用程序的内部主题相对应的配置值:
配置主题,通过
config.storage.topic
指定在配置主题中,Kafka Connect 存储用户已启动的所有连接器和任务的配置。每次用户更新连接器的配置或连接器请求重新配置时(例如,连接器检测到它可以启动更多任务),都会向此主题发出一条记录。此主题启用了压缩,因此它始终保留每个实体的最后状态。
偏移量主题,通过
offset.storage.topic
指定在偏移量主题中,Kafka Connect 存储源连接器的偏移量。与配置主题一样,偏移量主题也启用了压缩。此主题仅用于写入从外部系统向 Kafka 生成数据的源连接器的源位置。从 Kafka 读取数据并发送到外部系统的接收器连接器使用常规 Kafka 消费者组存储其消费者偏移量。
状态主题,通过
status.storage.topic
指定在状态主题中,Kafka Connect 存储连接器和任务的当前状态。此主题用作 REST API 用户查询的数据的中心位置。此主题允许用户查询任何工作程序,同时仍可获取所有正在运行的插件的状态。与配置和偏移量主题一样,状态主题也启用了压缩。
除了这些主题之外,Kafka Connect 还大量使用了 Kafka 的组成员资格 API。这些组以连接器名称命名。例如,对于名为 file-sink 的连接器,该组名为 connect-file-sink。组中的每个消费者都会向单个任务提供记录。可以使用常规消费者组工具(例如 Kafka-consumer-group.sh
)检索这些组及其偏移量。对于每个接收器连接器,Connect 运行时都会运行一个从 Kafka 中提取记录的常规消费者组。