JMS-每个队列一个ConnectionFactory或所有队列一个ConnectionFactory

JMS-每个队列一个ConnectionFactory或所有队列一个ConnectionFactory,jms,websphere,activemq,Jms,Websphere,Activemq,我将WebSphere与ActiveMQ和ActiveMQ的JCA适配器一起使用。在我们的应用程序中,有许多不同功能的队列。那么,您能告诉我,我应该为每个队列(功能)创建一个ConnectionFactory,还是只为整个应用程序创建一个ConnectionFactory并为队列共享?以及原因 提前感谢。这取决于您的要求。它不是特定于ActiveMQ的,而是一般的队列。您通常可以在以下情况下创建单独的连接工厂: 不同队列的不同主机/端口 要连接的不同安全凭据 想要有不同的连接池吗 因此,例如

我将WebSphere与ActiveMQ和ActiveMQ的JCA适配器一起使用。在我们的应用程序中,有许多不同功能的队列。那么,您能告诉我,我应该为每个队列(功能)创建一个ConnectionFactory,还是只为整个应用程序创建一个ConnectionFactory并为队列共享?以及原因


提前感谢。

这取决于您的要求。它不是特定于ActiveMQ的,而是一般的队列。您通常可以在以下情况下创建单独的连接工厂:

  • 不同队列的不同主机/端口
  • 要连接的不同安全凭据
  • 想要有不同的连接池吗

因此,例如,如果要确保某些队列至少有n个连接可用,可以为此创建单独的连接工厂。与一个连接工厂一样,在某些极端情况下,当您的大多数应用程序负载(比方说)在FunctiontyA队列上时,您可能没有足够的连接用于FunctiontyB队列,并且该功能可能会遭受饥饿

我关心的是表演。那么哪一个性能更好呢?是的,在连接池的情况下,有时我们可能需要几个连接池来保证连接的数量。但是我想知道,如果我们使用相同的代理,为什么不重用相同的连接呢?因为建立连接的成本非常高。@XunRen这就是为什么您有一个池,因为建立连接很昂贵。但是,从性能角度来看,在不同线程之间并发共享相同的连接并不好。