Kafka Connector 开发教程
首先放上官方地址:Connector Developer Guide
我觉的kafka 官方文档对于如何开发Connector写的不是很详细,本教程介绍如何开发一个简单的Sink连接器,Source连接器开发和Sink类似,只是继承的类不同而已。
核心概念
Connector 连接器
连接器有两种:
- SourceConnectors: 用于从另一个系统导入数据, 例如 JDBCSourceConnector 将关系数据库数据导入Kafka
- SinkConnectors: 用于将数据导出到另一个系统,例如 HDFSSinkConnector 将 Kafka topic 的数据导出到HDFS文件。
Connector接收配置文件,将配置文件的信息传递给Task,并且将job分解成 task 交给Task去执行。
Tasks 任务
Task 也分两种,SourceTask和Sink Task,主要工作就是将Connector分配的数据集合Collection<ConnectRecord> records进行处理,
records包含了topic、partition、key、value、valueSchema等信息。
Task 不需要处理offset等信息,都是由Connector来处理,我们只关心逻辑部分即可。
SourceTask使用的是poll方式,SinkTask使用的是put方式

Example of a source connector which has created two tasks, which copy data from input partitions and write records to Kafka.
开发Connector
开发Connector只需要继承2个抽象类,一个是Connector,一个是Task。
Source 继承SourceConnector和SourceTask
Sink 继承SinkConnector和SinkTask
具体代码编写可以参考Kafka源码中的FileStreamSourceTask.java和FileStreamSinkTask.java。
新建项目
1. 新建maven项目,添加依赖
版本和线上kafka版本保持一致,依赖的jar包不要和kafka运行时的jar包有版本冲突
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>connect-api</artifactId>
<version>2.1.1</version>
</dependency>
2. 继承抽象类,实现里面的方法
3. 将插件打包部署。
相关文章:
Kafka Connect 简介
Kafka Connect JDBC Connector使用教程
可以添加作者微信进行相互学习交流,还请填写备注信息。

网友评论