Kafka Connect 常见转换器:入门与配置指南
1. 项目目录结构及介绍
仓库 https://github.com/jcustenborder/kafka-connect-transform-common.git
包含了一套用于日常Kafka Connect场景的通用转换工具。以下是该项目的基本目录结构概述:
.
├── src # 源代码目录
│ ├── main # 主要源码区域
│ │ └── java # Java源码
│ ├── com.github.jcustenborder.kafka.connect.transform.common # 转换逻辑实现
│ ├── test # 测试源码区域
│ ├── java # 测试类
│ └── resources # 测试资源
├── pom.xml # Maven项目配置文件
├── README.md # 项目说明文档
└── ... # 其他如贡献者指南、许可证等文档
- src/main/java : 包含所有核心转换器的Java实现。
- src/test : 存放单元测试和集成测试以确保转换器功能正确。
- pom.xml : Maven构建文件,定义了依赖关系、构建流程和插件配置。
2. 项目的启动文件介绍
此项目本身并不直接提供一个独立应用来启动,而是作为Kafka Connect的插件使用。因此,启动不是通过直接执行某个“启动文件”完成,而是通过集成到Kafka Connect环境中进行配置并启用相应的转换器。
集成与启动概览:
-
安装插件:你可以使用Confluent Hub Client或手动编译安装。
- 使用Confluent Hub:
confluent-hub install jcustenborder/kafka-connect-transform-common:latest
- 手动编译安装:
- 运行
mvn clean package
编译项目。 - 将生成的jar移动到Kafka Connect的插件路径下。
- 运行
- 使用Confluent Hub:
-
配置Kafka Connect:
- 在Kafka Connect的配置文件中指定插件路径。
- 创建或修改连接器的配置,添加转换器设置。
3. 项目的配置文件介绍
配置主要涉及到两部分:Kafka Connect的全局配置与特定于转换器的配置。
Kafka Connect全局配置示例(简版):
# Kafka Connect worker.properties 示例
bootstrap.servers=localhost:9092
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
offset.storage.file.filename=/path/to/connect-offsets
status.storage.file.filename=/path/to/connect-status
config.storage.file.filename=/path/to/connect-configs
plugin.path=/path/to/your/pluginsDir # 插件路径,包含本项目生成的jar
转换器配置示例:
转换器的具体配置是在每个连接器的配置文件中添加的,比如使用TopicNameToField
转换器:
# 假设在某个连接器的配置中
transforms=convertTopic
transforms.convertTopic.type=com.github.jcustenborder.kafka.connect.transform.common.TopicNameToField
transforms.convertTopic.field=topicName # 定义将主题名插入消息的字段名
请注意,每个转换器有其独特的配置参数,具体参数需参照项目文档或者Javadoc中的说明。每个转换器的使用都应当在连接器的配置中详细指定,确保正确配置转换器的关键参数以满足所需的数据处理需求。