- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我们在 Tomcat (7.0.41) 中使用 Spring (3.2.4) 和 ActiveMQ (5.8.0),目前尚不清楚最佳用法。我们想用 JmsTemplate 来生产,用 MessageListenerContainer 来接收消息。
我们应该在接收端使用缓存吗? ( related link )
使用 ActiveMQ 和故障转移工作 CachingConnectionFactory? ( related link )
使用 PooledConnectionFactory 时需要设置 useAsyncSend="true"吗? ( related link )
最佳答案
来自 here :
PooledConnectionFactory 和 CachingConnectionFactory 的区别在于实现上的区别。以下是它们之间的一些不同特征:
虽然 PooledConnectionFactory 和 CachingConnectionFactory 都声明它们各自汇集连接、 session 和生产者,但 PooledConnectionFactory 实际上并没有创建多个生产者的缓存。它只是使用单例模式在被请求时分发单个缓存的生产者。而 CachingConnectionFactory 实际上创建了一个包含多个生产者的缓存,并在请求一个生产者时从缓存中分发一个生产者。
PooledConnectionFactory 构建在 Apache Commons Pool 项目之上,用于池化 JMS session 。这允许对池进行一些额外的控制,因为 Commons Pool 中的某些功能未被 PooledConnectionFactory 使用。这些附加功能包括增加池大小而不是阻塞、在池耗尽时引发异常等。您可以通过使用自己的自定义设置创建自己的 Commons Pool GenericObjectPool 来利用这些功能,然后将该对象通过setPoolFactory 方法。有关更多信息,请参阅以下内容:http://commons.apache.org/pool/api-1.4/org/apache/commons/pool/impl/GenericObjectPoolFactory.html
CachingConnectionFactory 还可以缓存消费者。使用此功能时只需要小心,以便您知道消费者是根据博客文章中提到的规则进行缓存的。
但最重要的是,CachingConnectionFactory 可以与任何符合 JMS 的 MOM 一起使用。它只需要一个 JMS 连接工厂。如果您使用多个 MOM 供应商,这在企业组织中很常见(这主要是由于遗留项目和现有项目),这一点很重要。重要的一点是 CachingConnectionFactory 可以很好地与许多不同的 MOM 实现配合使用,而不仅仅是 ActiveMQ。
来自 here :
如果您已集群 ActiveMQ,并使用故障转移传输,则据报道 CachingConnectionFactory 不是正确的选择。
我遇到的问题是,如果一个盒子坏了,我们应该开始在另一个上发送消息,但它似乎仍在使用旧的连接(每次发送超时)。如果我重新启动程序,它会再次连接,一切正常。资源: Autoreconnect problem with ActiveMQ and CachingConnectionFactory
问题是到失败的 ActiveMQ 的缓存连接是仍在使用中,这给用户带来了问题。现在此方案的选择是 PooledConnectionFactory。
如果您现在使用 ActiveMQ,并且将来可能会切换到其他代理(JBoss MQ、WebSphere MQ),请不要使用PooledConnectionFactory,因为它将您的代码紧密耦合到ActiveMQ。
关于java - 哪个更好: PooledConnectionFactory or CachingConnectionFactory?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19560479/
似乎JMSProducer没有进行垃圾收集,并且在将消息传递到队列后保持 Activity 状态,我正在使用Spring 3.2.2和带有Keep-alive设置的CachingConnectionF
我们在 Tomcat (7.0.41) 中使用 Spring (3.2.4) 和 ActiveMQ (5.8.0),目前尚不清楚最佳用法。我们想用 JmsTemplate 来生产,用 MessageL
Spring 配置 MyService.java
我在使用 ActiveMQ 和 Spring 的 CachingConnectionFactory 时遇到问题。我正在这样设置它们:
当使用 spring-jms 时,spring 提供了 2 个用于连接和 session 缓存的选项,以提高性能。 使用 CachingConnectionFactory 并缓存 session ,您
我正在使用 Apache Camel 和 Spring 从我的 Java 服务发送消息。如果交换时发生任何错误,我需要重置 JMS 连接。我正在使用下面的代码来实现我的目标。 try { pr
Java 文档 here与 Spring CachingConnectionFactory 相关的评论: NOTE: This ConnectionFactory requires explicit
我们正在使用 Spring 的 CachingConnectionFactory 在我们的应用程序的生产中每天处理数千万条消息,并且效果良好。 但是,我们希望减少与 Solace 的并发连接量,直到需
我正在使用 JmsTemplate 从同一客户端连接到两个 IBM MQ 服务器。 我已经配置了 JmsTemplate 的 reconnectOnException 以及 IBM MQ 连接工厂的
根据关于在 hornetq 中使用 JMSTemplate 的长期信息,我们在连接到服务器时一直在使用 CachingConnectionFactory。这是一个示例配置,与我们正在使用的配置非常相似
我们使用 Spring AMQP 客户端连接到我们的 RabbitMQ,我们的 Spring 配置定义为 nativeCF 指向基本的 Java 客户端实现 ConnectionFactory。
我有一个基于 spring-integration 4.0.x 的应用程序,它连接到 Websphere MQ 管理器以生成/使用 JMS 消息。该应用程序当前部署在 Tomcat 7.0.x 容器上
我们刚刚升级到 Spring 4 和 JMS 2.0。我们正在使用 CachingConnectionFactory 和 JmsTemplate 发布消息,并注意到在发布到目的地时,第一次尝试有效,然
我是一名优秀的程序员,十分优秀!