双向Apache驼峰路由-无限循环
我想在两个端点之间建立路由。由于这些端点(JMS主题)的性质,我希望桥接是双向的 Tibco端点的基础JMSCOComponent已启用pubSubNoLocal参数,该参数可确保使用者不会接收其自身根据发送的消息 耻骨下假性 指定是否禁止传递由其自身连接发布的消息 但是,这没有效果,因为这两个路由创建到JMS主题my.topic的独立连接 因此,以下内容将创建一个无限循环。 如前所述,我需要路线在两个方向上运行,以实现“无缝集成”双向Apache驼峰路由-无限循环,apache,apache-camel,jms,tibco-ems,solace,Apache,Apache Camel,Jms,Tibco Ems,Solace,我想在两个端点之间建立路由。由于这些端点(JMS主题)的性质,我希望桥接是双向的 Tibco端点的基础JMSCOComponent已启用pubSubNoLocal参数,该参数可确保使用者不会接收其自身根据发送的消息 耻骨下假性 指定是否禁止传递由其自身连接发布的消息 但是,这没有效果,因为这两个路由创建到JMS主题my.topic的独立连接 因此,以下内容将创建一个无限循环。 如前所述,我需要路线在两个方向上运行,以实现“无缝集成” 您需要在消息中添加一些指示,表明它已通过任一网桥发送。您可以
您需要在消息中添加一些指示,表明它已通过任一网桥发送。您可以使用现有的属性(重新交付?),或者最好添加一个新属性。例如,当属性通过桥接器时,将其设置为true。然后在您的定义中,您可以过滤掉已桥接的每条消息。我建议您考虑以下概念
在我看来,你做了两件事:
- 添加带有服务器ID的“PRODUCER”头(无论您如何定义)
- 所有侦听器都必须配置为“NOT(PRODUCER='your_ID')”
<c:route>
<c:from uri="tibco:topic:my.topic"/>
<c:to uri="solace-jms:topic:mytopic" />
</c:route>
<c:route>
<c:from uri="solace-jms:topic:mytopic"/>
<c:to uri="tibco:topic:my.topic" />
</c:route>