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.
我们有一个传入的 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.