java - 是否有更有效的方法来为 JMS 创建大量消息使用者列表?

标签 java architecture jms messaging

我正在查看包含大约 100 个主题的设计。创建 session 、主题、消息使用者以及将消息监听器连接到使用者似乎会消耗大量资源。有没有更好的办法?例如,我可以重复使用我的 session ,还是每次都必须创建它?或者我应该使用另一种范式?

这是被调用至少一百次的逻辑:

        session = conn.createSession(false, Session.CLIENT_ACKNOWLEDGE);
        final Topic destination = session.createTopic(topicName);
        final MessageConsumer consumer = session.createConsumer(destination, selector);
        consumer.setMessageListener(listener);

最佳答案

JMS session 不是线程安全的,因此您必须为每个订阅创建一个新 session 。 ActiveMQ 等一些 JMS 实现支持虚拟主题,可以在其中启动对多个主题的订阅。这可能会解决你的问题。请参阅http://activemq.apache.org/virtual-destinations.html .

关于java - 是否有更有效的方法来为 JMS 创建大量消息使用者列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38159852/

相关文章:

java - hibernate不会创建表

Java泛型类,内部类使用外部类的参数

java - Slf4j 和类路径错误

c# - 逆变?协方差?这种通用架构有什么问题......?

java - GWT 上如何处理大型多模块应用

java - 不能从静态上下文引用非静态变量牌组

iphone - 如何确保项目中的所有 UIViewController 对象只被创建一次?

java - 带有 ibm.mq.jms.MQQueueConnectionFactory 的 Spring JMSTemplate

java - JMS 本地事务与 TransactionManager

java - 通过通知 JBoss AS 中实体 EJB 的更改来拥有外部 Java 应用程序