2

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

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

谢谢。!

4

1 回答 1

2

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

池连接的东西将创建一个连接并在闲置之前将其保持打开一段时间(可配置),因此如果您的应用程序倾向于创建连接,请使用它一段时间并关闭它,以便稍后再创建另一个连接那么游泳池可能是一个不错的选择。

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

于 2013-01-08T19:24:00.063 回答