【问题标题】:Routing messages to different Kafka Topic based on payload根据有效负载将消息路由到不同的 Kafka 主题
【发布时间】:2019-12-15 08:49:42
【问题描述】:

我的应用程序正在从 IBM MQ 获取消息,并且我必须根据内容将其路由到不同的 Kafka 主题。

Kafka MQ 源连接器可以将事件从 MQ 带到 1 个 kafka 主题,我们可以在 Kafka MQ 连接器内进行基于消息的路由吗?

或者我们是否必须编写一个 KStream 应用来根据内容负载进行路由

【问题讨论】:

    标签: apache-kafka apache-kafka-connect


    【解决方案1】:

    Single Message Transform API 将使您能够根据消息的内容更改主题,但 AFAIK 尚不存在这样的主题,因此您需要自己编写。

    正如您所说,另一种方法是使用 Kafka Streams 或 KSQL 进行路由。

    这篇文章也可能有用:https://www.confluent.io/blog/putting-events-in-their-place-with-dynamic-routing

    【讨论】:

      【解决方案2】:

      最近写了一篇类似案例的SMT:https://github.com/rerorero/kafka-smt-jsonpath-tools

      您可以使用类似 JsonPath 的表达式来路由主题,如下所示:

      {
        ...
      
        "transforms": "route",
        "transforms.route.type": "com.github.rerorero.kafka.smt.PayloadBasisRouter$Value",
        "transforms.route.replacement": "topic-{$.user.name}"
      }
      

      【讨论】:

        猜你喜欢
        • 2018-04-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-17
        • 1970-01-01
        • 1970-01-01
        • 2019-06-17
        • 1970-01-01
        相关资源
        最近更新 更多