我有一个基于 Camel 的应用程序,它通过以下路由向 ActiveMQ 实例发布/订阅消息:
<from uri="activemq:myQueue" />
或者:
<to uri="activemq:someOtherQueue" />
我试图确定我是否无意中将我的应用程序设置为“同步模式”,这种情况发生在以下任一情况下:
ActiveMQConnectionFactory#setAlwaysSyncSend
为 true;或- “
MessageProducer
”设置为“持久”
我相信,如果没有 Camel,我通常会手动设置这些属性。这里介绍Camel作为ActiveMQ客户端,不知道如何/在哪里找到这些属性的值是什么。有任何想法吗?提前致谢。
最佳答案
您可以在添加组件时通过在传递给 ActiveMQ 组件的连接 URI 上设置这些值来配置这些值。这个documentation Camel 网站上向您展示了它是如何完成的。
ActiveMQ 客户端会在某些情况下选择使用异步而不是同步,从而进行一些自身的优化,以提高发送性能。这是documented here值得一读。
因此,当您通过如下代码添加组件时,您可以配置该组件:
camelContext.addComponent("activemq", activeMQComponent("tcp://localhost:61616?jms.alwaysSyncSend=true"));
关于java - 如何以及在哪里检查某些 Apache Camel 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15357195/