Java camel jetty activemq是否为每条消息创建新的activemq连接

Java camel jetty activemq是否为每条消息创建新的activemq连接,java,jetty,activemq,apache-camel,Java,Jetty,Activemq,Apache Camel,我定义了驼峰码头activemq路由,如下所示: 码头:http://0.0.0.0:8087/url1)到(“activemq:queue:queue1) camel是否创建activemq连接,然后将该连接用于jetty接收的所有消息,或者为每条消息创建activemq连接 我计划为activemq使用池连接,因为我的每秒消息流入量相当高,所以我需要了解骆驼行为来定义最大连接池大小。activemq组件以及JMS组件在发送消息时基于Spring Framework的JMSTemplate 正

我定义了驼峰码头activemq路由,如下所示:

码头:http://0.0.0.0:8087/url1)到(“activemq:queue:queue1)

camel是否创建activemq连接,然后将该连接用于jetty接收的所有消息,或者为每条消息创建activemq连接


我计划为activemq使用池连接,因为我的每秒消息流入量相当高,所以我需要了解骆驼行为来定义最大连接池大小。

activemq组件以及JMS组件在发送消息时基于Spring Framework的JMSTemplate

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

按照中的建议,您应该将其设置为池。然后您将重用连接/会话/生产者

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

ActiveMQ与JMSTemplate达成了一致,值得一读

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

简单地说,连接是与代理的网络连接(“套接字”),在多个线程之间共享。每个线程仍然有自己的(池)使用共享连接并并发运行的会话。如果您有多个ActiveMQ代理,并且希望在它们之间实现负载平衡,则多个连接仍然是一种增强功能(假定ActiveMQ是瓶颈,而不是您的应用程序)


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

ActiveMQ组件以及JMS组件在发送消息时基于Spring Framework中的JMSTemplate

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

按照中的建议,您应该将其设置为池。然后您将重用连接/会话/生产者

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

ActiveMQ与JMSTemplate达成了一致,值得一读

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

简单地说,连接是与代理的网络连接(“套接字”),在多个线程之间共享。每个线程仍然有自己的(池)使用共享连接并并发运行的会话。如果您有多个ActiveMQ代理,并且希望在它们之间实现负载平衡,则多个连接仍然是一种增强功能(假定ActiveMQ是瓶颈,而不是您的应用程序)


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

谢谢Petter。这有助于理解。为什么您会说“实际上只能使用一个连接”呢“。听起来只有一个线程连接到activemq。那将是一个瓶颈。jetty端点上的minThreads和maxThreads是否有助于从activemq池创建到代理的多个连接。请评论。添加了一个更新来解释。您应该将会话视为主要的“每线程”对象,而不是连接。谢谢Petter。这有助于理解。为什么你会说“实际上只需要一个连接就可以生活”。听起来只有一个线程连接到activemq。那将是一个瓶颈。jetty端点上的minThreads和maxThreads是否有助于从activemq池创建到代理的多个连接。请评论。添加了一个更新来解释。您应该将会话视为主要的“每线程”对象,而不是连接。
failover:(ssl://host1:61616,ssl://host2:61616)