Confluent - 将 Avro 消息从一个 kafka 主题拆分为多个 kafka 主题

Confluent - Splitting Avro messages from one kafka topic into multiple kafka topics

我们有一个传入的 kafka 主题,其中 多个 基于 Avro 模式的消息序列化到其中。

我们需要根据公共模式属性的特定值将 Avro 格式的消息拆分为多个其他 kafka 主题。

                             |------> [OUTGOING TOPIC(AVRO) - A] 
[INCOMING TOPIC(AVRO)] ----->|------> [OUTGOING TOPIC(AVRO) - B]
                             |------> [OUTGOING TOPIC(AVRO) - C]

想了解如何实现它,同时避免构建中间客户端来在融合平台中执行此操作splitting/routing。

我研究了 kafka 连接器,但没有找到可以完成这项工作的现有连接器。

您可以编写 Kafka Streams 应用程序并使用 branch():

KStream input = builder.stream("topic");
KStream[] splitStreams = input.branch(...);
splitStream[0].to("output-topic-1");
splitStream[1].to("output-topic-2");
// etc.