activemq连接池

时间:2013-01-08 15:57:47

标签: activemq

我正在使用ActiveMQConnectionFactory来创建连接。我只创建一个连接。我在这个单一连接下运行许多线程创建会话和生成器(每个线程都有自己的会话和生成器)。

我的问题是:如果我只使用一个连接,那么我应该使用连接池(PooledConnectionFactory)还是应该坚持使用ActiveMQConnectionFactory。 任何人都可以请解释这两者之间的差异(可能是基本的,因为我仍然在activemq中学习曲线)。

感谢!

1 个答案:

答案 0 :(得分:2)

答案是,这取决于。如果您只在应用程序中使用一个Connection并在应用程序的生命周期内保持打开状态,那么您通过池连接获得的收益并不多,但是PooledConnectionFactory也会对Sessions和Producers进行池化,因此您仍然可以获得一些创建和销毁Sessions和Producers,但如果你不创建和销毁这些资源,那么你也不需要集中它们。

池化连接会创建一个连接并保持打开一段时间,然后将其闲置(可配置),因此如果您的应用程序倾向于创建连接,请稍微使用它并将其关闭以仅创建另一个连接很短的时间后,游泳池可能是一个不错的选择。

最后,您需要检查应用程序并查看如何使用JMS资源。另外,看看它是否能获得任何性能的最佳方法是尝试它并测量与不使用它相比的结果。