提问者:小点点

骆驼码头-活动mq 是否为每条消息创建新的活动 mq 连接


我已经定义了一条骆驼码头-活动路线如下:

from(" jetty:http://0 . 0 . 0 . 0:8087/URL 1 ")。to("activemq:queue:queue1)

camel是创建一个激活的连接,然后将该连接用于jetty接收的所有消息,还是为每条消息创建一个激活的连接。

我计划使用一个池连接的活动,因为我的消息流入是相当高的每秒,我需要了解骆驼行为来定义最大连接池大小。


共1个答案

匿名用户

ActiveMQ组件和JMS组件一样,在发送消息时都是基于Spring Framework的JMSTemplate。

正如您所担心的,它会为每条消息创建和关闭一个连接会话生成器,这不是最佳性能。

正如 activemq 组件文档中所建议的那样,您应该使用池化来设置它。然后,您将重用连接/会话/生产者。

如果您只打算将池中的一个连接用于此路由,则实际上可以在该池中使用该连接。

ActiveMQ总结了JMSTemboard的提示和技巧。值得一读。

更新:关于与并发相关的连接数:

简化后,Connection是与代理的网络连接(“套接字”),在多个线程之间共享。每个线程仍然有自己的(池)会话,该会话使用共享连接并并发操作。如果您有多个ActiveMQ代理并希望在它们之间实现负载平衡(假设ActiveMQ是瓶颈,而不是应用程序),那么多连接仍然是一种增强。

failover:(ssl://host1:61616,ssl://host2:61616)

在实践中,通过使用一组有限的连接而不是一组连接,性能可能会有一定程度的提高,但您可能需要针对特定环境进行测试。