我一直在做一些研究(here和here等等),并且凭借一些经验,我对两者之间的选择感到满足,似乎是:
CachingConnectionFactory 适用于没有太多消息传递事务管理的简单容器(如Tomcat和ActiveMQ),因此caching
部分可以保证某些级别的性能,即使Spring本质上必须为每个传输启动一个新的会话/连接/生成器,因此通过扩展SingleConnectionFactory
来缓存相同的连接/会话以重用并避免开销。
DelegatingConnectionFactory 适用于成熟的应用程序服务器,因此CF /事务管理由服务器(Websphere MQ,JBoss HornetQ等)完成,因此该CF作为委派发挥作用并离开工作负载到服务器。因此,实际性能取决于如何调整应用服务器的CF以及队列和事务管理。
我可能太醉了,不能这样做所以请纠正我,如果上面没有意义。我还有一个基于此比较的问题,如果Spring JmsTemplate
本质上必须打开/关闭会话以及所有传输,那么我们如何通过在应用程序中使用JmsTemplate
来提高性能服务器的jms管理?