Kafka Connector 开发指南

作者: 扶我起来改bug | 来源:发表于2019-04-09 21:19 被阅读5次

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方式

alt text
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.javaFileStreamSinkTask.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使用教程

可以添加作者微信进行相互学习交流,还请填写备注信息。

image

相关文章

网友评论

    本文标题:Kafka Connector 开发指南

    本文链接:https://www.haomeiwen.com/subject/utrwiqtx.html