0

我正在使用 servicemix 和 camel 发布到一些 activemq 主题:

from("vm:all").recipientList().simple(String.format("activemq:topic:%s.%s.%s.%s.%s.%s","${header.type}", ...

但是每个主题都会创建一个新的生产者线程,知道如何控制它吗?

编辑1:

实际上我意识到我创建的主题太多了,你应该选择选择器吗:http ://www.andrejkoelewijn.com/blog/2011/02/21/camel-activemq-topic-route-with-jms-selector/

谢谢您的帮助!

4

1 回答 1

1

典型的场景是 Camel 使用 JMSTemplate 向 ActiveMQ 发送消息。这意味着它每次都会创建一个新的生产者。实际上,它为每条消息创建一个新的连接、会话和生产者。除了性能方面,这通常没有问题。

这通常由 org.apache.activemq.pool.PooledConnectionFactory 处理,它为您缓存连接、会话和生产者。但是,根据您的配置,它最初可能会创建“一些”生产者,但它们将被重用。

检查您在 activemq-broker.xml 中的连接工厂设置,并确保您获取了 PooledConnectionFactory。

于 2013-04-23T19:40:14.420 回答