【问题标题】:When is it appropriate to cacheConsumers when using Spring CachingConnectionFactory?使用 Spring CachingConnectionFactory 时什么时候适合 cacheConsumers?
【发布时间】:2014-05-05 12:42:25
【问题描述】:

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

何时将其设置为 false 合适? 设置为 false 有什么好处和坏处?

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

【问题讨论】:

  • 您的问题是关于 cacheConsumers 但您的消息是关于 cacheProducers。请更正。

标签: java spring jms spring-jms


【解决方案1】:

将其设置为false 几乎违背了整个目的。您只需缓存连接即可。

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

这是给Jmstemplate的。一般不建议使用CachingConnectionFactoryDefaultMessageListenerContainer

【讨论】:

    猜你喜欢
    • 2011-09-13
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    • 2019-09-17
    • 2019-08-25
    • 2011-03-11
    相关资源
    最近更新 更多