我正在尝试将XML数据包从一个ActiveMQ队列路由到另一个框上的另一个ActiveMQ队列。我用骆驼来达到这个目的。我打算稍后将其发送到其他方框,以便我使用多播来复制消息。
我正在两端使用C-Stomp library发送和接收消息。
ActiveMQ-5.9.0和Camel-2.12.3
camel.xml
<camelContext>
<route>
<from uri="activemq:queue:out" />
<multicast>
<to uri="otheractivemq:queue:in" />
</multicast>
</route>
</camelContext>
<!-- ActiveMQs -->
<bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
<property name="connectionFactory">
<bean class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://localhost:61616"/>
<property name="userName" value="${activemq.username}"/>
<property name="password" value="${activemq.password}"/>
</bean>
</property>
</bean>
<bean id="otheractivemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
<property name="connectionFactory">
<bean class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://[differentip]:61616"/>
<property name="userName" value="${activemq.username}"/>
<property name="password" value="${activemq.password}"/>
</bean>
</property>
</bean>
在我的ActiveMQ代理上,我可以看到消息正被添加到本地队列中并迅速出列;但是,当我检查另一个ActiveMQ时,只有其他所有消息都被排队。
我试图在另一个盒子上添加目标队列的“克隆”并将其添加到多播中;所以,我的路线喜欢以下内容:
<route>
<from uri="activemq:queue:out" />
<multicast>
<to uri="otheractivemq:queue:in" />
<to uri="otheractivemq:queue:in_clone" />
</multicast>
</route>
但是,然后“克隆”只收到所有其他消息,而另一个队列收到所有消息。