【问题标题】:Spring Integration: copy one inbound message to multiple outboundSpring Integration:将一条入站消息复制到多个出站消息
【发布时间】:2019-07-02 14:00:45
【问题描述】:

我想使用 Spring Integration 来处理 MQTT 消息。

这是我的处理要求:根据入站消息负载,它应该被复制到具有相同负载但不同标头的多条消息中。更具体地说,不同的 MQTT 主题标头,因为我想将它们发送到不同的主题。

还应按顺序发送出站消息:首先是来自第一个入站消息的所有转换消息,然后是来自第二个入站消息的所有消息,等等。

我应该使用什么消息端点来实现这一点?

【问题讨论】:

    标签: java spring spring-integration mqtt


    【解决方案1】:

    所以,您所描述的实际上并不是 MQTT 特定的,而是一种称为 splitter 的企业集成模式,Spring Integration 提供了对它的支持,您可以使用 XML、Annotation 和/或 Java DSL 对其进行配置。您可以找到更多信息here

    简而言之,Splitter 是一个带有特定合约的消息处理程序,允许它从“单个”返回“多个”(与聚合器相反)。您基本上会收到一条消息(在您的情况下来自 MQTT)并将其拆分为拆分器实现中的多条消息。

    【讨论】:

    • 谢谢!以及实现排序的方式是什么?如果我没记错的话,Resequencer 仅在一组拆分消息中重新排序消息。但是我想通过出站适配器发送来自第一条入站消息的所有拆分消息,然后发送来自第二条入站消息的任何拆分消息等。同时仍然能够并行处理消息,例如使用 ExecutorChannel。
    • 只要一切都在单线程上(默认情况下会这样),排序就没有问题,因为列表合约将被维护 - FIFO。所以你现在不需要重测序器。但是,如果您确实打破了线程边界,那么我们可以讨论如何从重新排序器中受益。
    猜你喜欢
    • 2016-02-10
    • 2023-03-07
    • 1970-01-01
    • 2014-10-23
    • 2015-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    相关资源
    最近更新 更多