我创建的项目只包含rabbitmq的路由设置。
<route>
<from uri="rabbitmq:localhost/test_out_ex?queue=test_out&autoDelete=false&username=admin&password=admin"/>
<to uri="rabbitmq:localhost/test_in_ex?queue=test_in&autoDelete=false&username=admin&password=admin"/>
</route>
我在tomcat上运行它,Camel只创建“from”-endpoint,而不是“to”(我在RabbitMq web界面中查看)。为什么?因为,“到”还没有消费者?
更多详情:
问题是消息未保存在输出消息队列中。这是一种正常情况,当应用程序向队列发送消息时,此时消息没有在线消费者,所以它应该保存消息,直到消费者连接。
所以,我定义了简单路由并将其部署在tomcat上,我也部署了Jolokia项目来监控我的驼峰上下文通过Hawtio。 Hawtio告诉我,该路由是由两个端点组成的。然后我通过RabbitMq web-interface将消息发布到'test_out'。 Hawtio告诉我,它到达'test_in'队列,但在RabbitMq web-interface(或rabbitmqctl)中'test_in'队列不存在,所以在服务器重启后消息消失了。
答案 0 :(得分:2)
我们需要过滤邮件标头,这可能会在从test_out路由到test_in时造成一些麻烦。
<route>
<from uri="rabbitmq:localhost/test_out_ex?queue=test_out&autoDelete=false&username=admin&password=admin"/>
<removeHeader pattern="rabbitmq.*"/>
<to uri="rabbitmq:localhost/test_in_ex?queue=test_in&autoDelete=false&username=admin&password=admin"/>
</route>