当使用Spring CachingConnectionFactory时是适当的cacheConsum

2019-10-19 16:55发布

春天包含一个名为CachingConnectionFactory类。 在这个类的一个变量是一个名为cacheProducers布尔值。 默认情况下,这个值是true。 此变量可以被设置为假使用setCacheProducers(假)。

什么时候是合适的将其设置为假? 什么是设置为false的优点和缺点?

背景:我们正在对我们的应用程序的性能测试和使用Spring JMS发布数千封邮件的第二至JMS。 剖析我们的代码,我们看到session.createProducer呼叫耗费我们的总处理时间超过60%,工厂当前设置为setCacheProducers(假)。 什么后果将该值设置为true?

Answer 1:

其设置为false非常失败的全部目的。 你留下了只是缓存的连接。

如果您要管理自己的生命周期生产(EE使用时,您可能需要将其设置为false execute()SessionCallback )。 但是当你使用的是更高层次的抽象( send()convertAndSend()等),你一般会希望它是真的。

这是Jmstemplate 。 所以一般不建议使用CachingConnectionFactoryDefaultMessageListenerContainer



文章来源: When is it appropriate to cacheConsumers when using Spring CachingConnectionFactory?