我已经定义了一个camel jetty-activemq路线,如下所示:
从( “码头:HTTP://0.0.0.0:8087 / URL1”)。要(“ActiveMQ的:队列:队列1)
camel是否创建了activemq连接,然后将该连接用于jetty接收的所有消息,或者为每条消息创建activemq连接。
我打算为activemq使用池化连接,因为我的消息流入速度非常高,我需要了解驼峰行为以定义最大连接池大小。
答案 0 :(得分:1)
ActiveMQ组件以及JMS组件在发送消息时基于Spring Framework的JMSTemplate。
当你担心时,它会为每条消息创建和关闭一个连接+会话+生成器,这不是最佳的性能。
根据activemq component documentation中的建议,您应该使用池进行设置。然后,您将重用连接/会话/生成器。
如果您打算仅将此用途用于此路由,那么您实际上可以只使用池中的一个连接。
ActiveMQ使用JMSTemplate创建了summary of tips and tricks。值得一读。
更新:关于与并发相关的连接数:
简化,Connection是与代理的网络连接(“套接字”),在许多线程之间共享。您的每个线程仍然拥有自己的(池)会话,该会话使用共享连接并同时运行。如果您有多个ActiveMQ代理并希望在它们之间进行负载均衡,则多个连接仍然可以是增强功能(给定ActiveMQ是瓶颈而不是您的应用程序)。
failover:(ssl://host1:61616,ssl://host2:61616)
实际上,通过使用一组有限的连接而不是一个连接,性能可能会达到一定程度,但您可能必须测试您的特定环境。