1.7. 使用 Kafka Connect converters 将数据流传输到外部系统
您可以在 Apache Kafka 中使用 Service Registry 连接到 Kafka 和外部系统间的流数据。使用 Kafka Connect,您可以为不同的系统定义连接器,将大量数据移入和移出基于 Kafka 的系统。
图 1.3. Service Registry 和 Kafka Connect 架构
Service Registry 为 Kafka Connect 提供以下功能:
- Kafka Connect 模式的存储
- Apache Avro 和 JSON Schema 的 Kafka Connect 转换器
- 用于管理 schema 的 registry REST API
您可以使用 Avro 和 JSON Schema 转换器将 Kafka Connect 模式映射到 Avro 或 JSON 模式。然后这些架构可将消息键和值序列化为紧凑 Avro 二进制格式或人类可读 JSON 格式。转换的 JSON 也比较详细,因为消息不包含架构信息,只是架构 ID。
Service Registry 可以管理和跟踪 Kafka 主题中使用的 Avro 和 JSON 模式。由于该架构存储在 Service Registry 中,并与消息内容分离,因此每条消息只能包含一个小型模式标识符。对于 Kafka 等 I/O 绑定系统,这意味着生产者和消费者的总吞吐量。
在这个用例中,由 Service Registry 提供的 Avro 和 JSON Schema serializers (SerDes)也被 Kafka producer 和使用者使用。您使用更改事件进行写入的 Kafka 消费者应用程序可以使用 Avro 或 JSON Serdes 对这些更改事件进行反序列化处理。您可以将这些 SerDes 安装到任何基于 Kafka 的系统,并将它们与 Kafka Connect 一起使用,或者与基于 Kafka Connect 的系统(如 Debezium 和 Camel Kafka Connector)一起使用。