当前位置: 首页 > 知识库问答 >
问题:

聚合来自两个不同使用者的两条 JMS 消息

姜晨
2023-03-14

我有两个jms消费者,每个都在不同的流中。我想使用另一个流来聚合这两条消息的消息。并且还需要保留相关ID,因为我需要分割有效负载并发送回消息。

    <flow name="integration-consumer-client1" doc:name="integration-consumer-client1">
    <jms:inbound-endpoint doc:name="JMS" connector-ref="Active_MQ" queue="client1.publish"/>
    <logger message="Consumes Client One = #[payload]" level="INFO" doc:name="Logger"/>
    <logger message="Client One Correlation = #[message.correlationId]" level="INFO" doc:name="Logger"/>
    <vm:outbound-endpoint exchange-pattern="one-way" path="client1" doc:name="VM"/>
</flow>
<flow name="integration-consumer-client2" doc:name="integration-consumer-client2">
    <jms:inbound-endpoint doc:name="JMS" connector-ref="Active_MQ" queue="client2.publish"/>
    <logger message="Consumes Client Two = #[payload]" level="INFO" doc:name="Logger"/>
    <logger message="Client Two Correlation = #[message.correlationId]" level="INFO" doc:name="Logger"/>
    <vm:outbound-endpoint exchange-pattern="one-way" path="client2" doc:name="VM"/>
</flow>
<flow name="integration-internetsolutionsFlow1" doc:name="integration-internetsolutionsFlow1">
    <scatter-gather doc:name="Scatter-Gather">
        <vm:inbound-endpoint exchange-pattern="one-way" path="client1" doc:name="VM"/>
        <vm:inbound-endpoint exchange-pattern="one-way" path="client2" doc:name="VM"/>
    </scatter-gather>
</flow>

我尝试将分散收集与两个入站 VM 一起使用,但收到以下错误:

由以下原因导致:组织.xml.sax.SAXParse 异常:cvc-complex-type.2.4.a:发现以元素“vm:入站终结点”开头的无效内容。“{”http://www.mulesoft.org/schema/mule/core“:注释、”http://www.mulesoft.org/schema/mule/core“:自定义聚合策略、”http://www.mulesoft.org/schema/mule/core“:线程配置文件、”http://www.mulesoft.org/schema/mule/core“:抽象消息处理器、”http://www.mulesoft.org/schema/mule/core“:抽象出站终结点、”http://www.mulesoft.org/schema/mule/core“:抽象混合内容消息处理器}”之一是预期的。at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(未知来源)

共有1个答案

金和雅
2023-03-14

错误的原因是集成 - 互联网解决方案Flow1没有任何入站endpoint。

你可以做的是以下:-

使用 vm:出站endpoint从流集成-使用者-客户端1 和集成-使用者-客户端2 转到同一路径

然后在integration-internetsolutionsFlow1中

     <flow name="integration-internetsolutionsFlow1" doc:name="integration-internetsolutionsFlow1">
      <vm:inbound-endpoint exchange-pattern="request-response" path="Your Path" doc:name="VM" connector-ref="vmConnector" />
    <logger level="INFO" message="#[message.payload]" doc:name="Logger"/>
<!-- you don't require a setter-getter here -->
    </flow>

流式集成-消费者-客户端1和集成-消费者-客户端2的出站VM路径应该相同。

你不需要在这里分散收集..因为两个流都会将有效负载分配到相同的 VM 路径 .它将由 VM 入站终结点接收

 类似资料:
  • 有没有任何选项或配置可以方便单个Kafka消费者同时消费来自两个不同集群的消息?在创建生产者和消费者时,我将两个集群都提到逗号分隔。我一直在观察消费者只消费来自单个集群的消息。 请参阅下面的说明:消费者C1被配置为监听集群:集群-1:Zooker-1 with Broker-1集群-2:Zooker-2 with Broker-2 我正在寻找一种解决方案,其中消费者C1可以同时消费来自集群1和集群

  • 我有4个分区和4个消费者(例如A、B、C、D)。如何使用使用者组配置哪个使用者将从哪个分区读取数据。我用的是Kafka的春靴。

  • 现在我们需要用JOOQ创建left join查询,什么将left join来自两个不同数据库的两个表 示例本机SQL查询(贝娄),我们需要这个查询是建立使用JOOQ框架,而不是使用本机SQL。直到现在我还没有找到任何解决方案,也许JOOQ不支持这个功能

  • 我编写了一个查询,用于查找特定班级中某一性别的学生人数,但我无法找到一种方法来编写可以对两种性别执行相同操作的查询。我尝试编写两次查询(针对每个性别),然后使用UNION将它们组合起来,但也无法做到这一点。 查询# 1 结果: 查询#2 结果: 我希望输出如下,最好使用一个查询: 谢谢你。

  • 我正在尝试将两个PDF文件中的页面合并为一个PDF和一个页面。因此,我尝试了下面使用PyPDF2的代码: 它生成一个文件和一个页面,其中包含来自文件1的第1页的内容,但我没有找到来自文件2的第1页的任何数据。似乎它没有被合并。

  • 问题内容: 我有3张桌子,每个国家和地区都有它的代币 还有这些国家中所有湖泊和所有山峰中的一个的表。 我现在必须说明山峰少于湖泊的国家。我现在尝试了几个小时,但找不到解决此问题的方法。我试图将3个表连接在一起- 但我不知道下一步该怎么做。我确定我必须使用嵌套的SQL命令。 这是我对每个国家的湖泊和山脉计数的尝试 但是以某种方式,两个列的count(Geo_lake.country)和count(G