5

我有一个生产者正在为某个主题生成 protobuf 消息。我有一个反序列化 protobuf 消息的消费者应用程序。但是 hdfs sink 连接器直接从 Kafka 主题中获取消息。键和值转换器etc/schema-registry/connect-avro-standalone.properties将设置为什么?最好的方法是什么?提前致谢!

4

1 回答 1

4

Kafka Connect 旨在将 Kafka 中对序列化格式的关注与具有转换器概念的单个连接器分开。正如您似乎已经发现的那样,您需要将key.convertervalue.converter类调整为支持 protobufs 的实现。这些类通常作为普通的 Kafka Deserializer 实现,然后执行从特定于序列化的运行时格式(例如 protobufs 中的消息)到 Kafka Connect 的运行时 API(没有任何关联的序列化格式——它只是一个一组 Java 类型和一个定义模式的类)。

我不知道现有的实现。实现这一点的主要挑战是 protobufs 是自描述的(即您可以在不访问原始模式的情况下对其进行反序列化),但由于它的字段只是整数 ID,因此如果没有任何一个 a) 要求,您可能无法获得有用的模式信息转换器可以使用特定的模式,例如通过配置(这使得迁移模式更加复杂)或b)模式注册服务+数据的包装格式,允许您动态查找模式。

于 2016-12-11T01:00:46.647 回答