我的骆驼路线如下

 <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring" >
    <route>
      <from uri="bean:SendClass?method=send" />
      <to uri="jms:MyQueue" pattern="InOnly" />
    </route>
    <route>
    <from uri="jms:MyQueue" />
    <to uri="bean:recvClass?method=recv" />
    </route>
  </camelContext>

当通过第三方POJO激活时,发送方法会在某个不规则的间隔内发送消息。但是,一旦Recv Bean收到消息并将相同的消息重新启动,我认为骆驼的问题是骆驼正在重新启动路线。

可能的解决方案是:

  1. 是它们的一些属性,我可以将其放入 <from.../> 去做这个 ?
  2. 编写一个处理器来过滤发送 bean 和队列之间的唯一消息。
  3. 他们是否有其他方式在不使用的情况下路由它 <from uri="bean:..." />

谢谢Sanre6

有帮助吗?

解决方案

你不应该有第一条路线。当您这样做时,您告诉 Camel 不断调用该 bean 上的 send 方法并路由它。这就是为什么你每秒会看到数百条消息。

相反,您应该在 bean 代码中使用一些 Camel API 并将消息发送到 JMS 队列。例如使用 ProducerTemplate。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top