ActiveMQ 的连接池

Connection pool for ActiveMQ

通常,在 DBMS 的连接池中,有数百个连接是可以接受的,有时甚至更可取。

在网上看例子,我总是看到连接池只有几个连接,而与连接关联的会话数量很大。

这是因为与 ActiveMQ 的连接在某种程度上很昂贵吗?

数据库和 JMS 连接通常都被认为是 "expensive",通常应该合并。

在池化用例中,池中的连接数实际上是由您的性能要求、硬件容量等决定的。它通常通过基准测试和调整来完善。性能和资源利用率之间几乎总是需要权衡取舍,因此找到合适的平衡点是您的工作。即使是一般性建议也很难针对池大小做出,因为用例可能差异很大。

在非池用例中,值得注意的是单个 JMS 连接可以同时为多个会话提供服务(尽管会话本身不能同时使用)。 JMS 会话的创建成本比 JMS 连接低得多。因此,在非池化用例中,将 JMS 连接数尽可能减少并使用多个会话通常是有意义的。

除了一些连接设置之外,所有实质性的 JMS 客户端工作都是通过会话完成的。 JDBC 连接没有这样的 "session" 想法。大多数工作是直接在连接对象上完成的。因此,我不确定这里的比较是否真的有效。