我正在查看包含大约 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/