Kafka Connect 是 Apache Kafka 的一部分,提供了数据存储和 Kafka 之间的流式集成。对于数据开发工程师来说,只需要配置 JSON 文件就可以使用。Kafka 为一些常见数据存储的提供了 Connector,比如,JDBC、Elasticsearch、IBM MQ、S3 和 BigQuery 等等。对于开发人员来说,Kafka Connect 提供了丰富的 API,还可以开发其他的 Connector。除此之外,还提供了用于配置和管理 Connector 的 REST API。
Kafka Connect 是一种模块化组件,提供了一种非常强大的集成方法。关键组件如下所示:
- Connectors(连接器):定义如何与数据存储集成的 JAR 文件;
- Converters(转换器):处理数据的序列化和反序列化;
- Transforms(变换器):可选的运行时消息操作。
人们对 Kafka Connect 最常见的误解基本都与数据序列化相关。Kafka Connect 使用 Converters 来处理数据的序列化。接下来让我们看看它们是如何工作的,并说明一些常见问题是如何解决的。
1. Kafka 消息都是字节Kafka 消息被组织保存在 Topic 中,每条消息就是一个键值对。当存储在 Kafka 中时,键和值都只是字节。这样 Kafka 就可以适用于各种不同场景,但这也意味着开发人员必须决定数据是如何序列化的。
在配置 Kafka Connect 时,其中最重要的一件事就是配置序列化格式。我们需要确保从 Topic 读取数据时使用的序列化格式与写入 Topic 的序列化格式相同,否



