Spring包含一个名为CachingConnectionFactory的类。此类中的一个变量是名为cacheProducers的布尔值。默认情况下,此值为true。可以使用setCacheProducers(false)将此变量设置为false。
何时将此设置为false是否合适? 设置为false有什么好处和缺点?
背景: 我们正在对我们的应用程序进行性能测试,并使用Spring JMS每秒向JMS发送数千条消息。通过分析我们的代码,我们看到session.createProducer调用消耗了超过总处理时间的60%,并且工厂当前设置为setCacheProducers(false)。将此值设置为true会产生什么后果?
答案 0 :(得分:1)
将它设置为false
几乎完全失败了。您只需缓存连接即可。
如果您想自己管理生产者生命周期(例如,将execute()
与SessionCallback
一起使用时),您可能希望将其设置为false。但是当你使用更高级别的抽象(send()
,convertAndSend()
等)时,你通常会希望它是真的。
这是针对Jmstemplate
的。通常不建议将CachingConnectionFactory
与DefaultMessageListenerContainer
一起使用。