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

时间:2019-05-22 15:44:27

标签: apache-kafka avro apache-kafka-streams apache-kafka-connect confluent

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

我们需要根据通用架构属性的特定值将Avro格式的消息分为多个其他kafka主题。

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

想了解如何实现此目标,同时避免构建中间客户端来在融合平台中执行此拆分/路由。

我探索了kafka连接器,但没有找到可以完成此工作的现有连接器。

1 个答案:

答案 0 :(得分:1)

您可以编写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.