什么时候使用Spring CachingConnectionFactory时cacheConsumers是否合适?

时间:2014-03-26 20:32:15

标签: java spring jms spring-jms

Spring包含一个名为CachingConnectionFactory的类。此类中的一个变量是名为cacheProducers的布尔值。默认情况下,此值为true。可以使用setCacheProducers(false)将此变量设置为false。

何时将此设置为false是否合适? 设置为false有什么好处和缺点?

背景: 我们正在对我们的应用程序进行性能测试,并使用Spring JMS每秒向JMS发送数千条消息。通过分析我们的代码,我们看到session.createProducer调用消耗了超过总处理时间的60%,并且工厂当前设置为setCacheProducers(false)。将此值设置为true会产生什么后果?

1 个答案:

答案 0 :(得分:1)

将它设置为false几乎完全失败了。您只需缓存连接即可。

如果您想自己管理生产者生命周期(例如,将execute()SessionCallback一起使用时),您可能希望将其设置为false。但是当你使用更高级别的抽象(send()convertAndSend()等)时,你通常会希望它是真的。

这是针对Jmstemplate的。通常不建议将CachingConnectionFactoryDefaultMessageListenerContainer一起使用。