我有两台服务器需要相同的Feed信息(prod和test)。以下工作正常:
<ns2:route id="JSON-INT" xmlns:ns2="http://camel.apache.org/schema/spring">
<ns2:from uri="mq:MY.MQ.FEED"/>
<ns2:marshal ref="feedToJsonTransformer" id="marshal2"/>
<ns2:to uri="direct:internal" id="to5"/>
</ns2:route>
<ns2:route id="INT-PROD-AND-TEST-INTERNAL" xmlns:ns2="http://camel.apache.org/schema/spring">
<ns2:from uri="direct:internal"/>
<ns2:multicast stopOnException="false" id="multicast1">
<ns2:to uri="direct:prod" id="to6"/>
<ns2:to uri="direct:test" id="to7"/>
</ns2:multicast>
</ns2:route>
<ns2:route id="INT-PROD" xmlns:ns2="http://camel.apache.org/schema/spring">
<ns2:from uri="direct:prod"/>
<ns2:to uri="jms:appProd" id="to8"/>
</ns2:route>
<ns2:route id="INT-TEST" xmlns:ns2="http://camel.apache.org/schema/spring">
<ns2:from uri="direct:test"/>
<ns2:to uri="jms:appTest" id="to9"/>
</ns2:route>
然而,当我关闭我的测试服务器(并不总是需要并且花钱)大约一个小时后,生产服务器停止接收消息。我假设队列正在填补并停止进程?如果测试服务器出现故障,有没有办法忽略测试服务器?
答案 0 :(得分:0)
我正在编写以下内容,因为我假设您没有将Exchange模式更改为InOut(因此您在发射后的模式下使用了JMS)。
我建议如下:
<ns2:route id="JSON-INT" xmlns:ns2="http://camel.apache.org/schema/spring"> <ns2:from uri="mq:MY.MQ.FEED"/> <ns2:marshal ref="feedToJsonTransformer""/> <ns2:to uri="jms:appProd"/> <ns2:to uri="jms:appTest?timeToLive=10000"/> </ns2:route>
这很简单。不使用其他路线,它更具可读性,并告诉您究竟发生了什么。 希望这可以帮助, 盖尔盖伊