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