1.7. 使用 Kafka Connect 转换器将数据流传输到外部系统
您可以使用带有 Apache Kafka Connect 的 Apicurio Registry 在 Kafka 和外部系统之间流数据。使用 Kafka Connect,您可以为不同的系统定义连接器,将大量数据移到基于 Kafka 的系统中。
图 1.3. Apicurio Registry 和 Kafka 连接架构

Apicurio Registry 为 Kafka Connect 提供以下功能:
- Kafka Connect 模式的存储
- Apache Avro 和 JSON Schema 的 Kafka Connect 转换器
- 用于管理模式的核心 Registry API
您可以使用 Avro 和 JSON Schema 转换器将 Kafka Connect 模式映射到 Avro 或 JSON 模式。然后,这些模式可以将消息键和值序列化为紧凑 Avro 二进制格式或人类可读的 JSON 格式。转换的 JSON 更为详细,因为消息不包含 schema 信息,而只会包含模式 ID。
Apicurio Registry 可以管理和跟踪 Kafka 主题中使用的 Avro 和 JSON 模式。由于 schema 存储在 Apicurio Registry 中,并且与消息内容分离,因此每个消息都必须仅包含 tiny 模式标识符。对于如 Kafka 的 I/O 绑定系统,这意味着生产者和消费者的总吞吐量。
Apicurio Registry 提供的 Avro 和 JSON Schema serializers 和反序列化器(SerDes)在此用例中由 Kafka 生成者和消费者使用。您写入的 Kafka 消费者应用程序可以使用 Avro 或 JSON SerDe 来反序列化这些事件。您可以在任何基于 Kafka 的系统上安装 Apicurio Registry SerDes,并将它们与 Kafka Connect 一起使用,或与基于 Kafka Connect 的系统(如 Debezium)一起使用。