下面我用一篇关于临时队列的文章来解释我的想法。我只是想知道我对此是对还是错。
参考链接:我应该如何使用 JMS 实现请求响应
“创建临时目的地、消费者、生产者和连接都是与代理的同步请求-响应操作,因此应避免处理每个请求,因为这会导致与 JMS 代理的大量聊天。”
即消费者和生产者,临时队列在同一个会话或连接中。如果我们关闭连接或会话,临时队列将消失。我们无法在不同的会话中获取临时队列。它将与 activemq 进行大量聊天。
“通过 JMS 实现请求-响应的最佳方法是在启动时为每个客户端创建一个临时队列和使用者,将每条消息的 JMSReplyTo 属性设置为临时队列,然后在每条消息上使用相关 ID 将请求消息与响应消息相关联。这避免了为每个请求创建和关闭消费者的开销(这很昂贵)”
即在启动时创建消费者和临时队列。为该消息设置 jmsreplyto 和相关 ID。使用该相关 ID,我们可以轻松获取该消息。
“这也意味着你可以在多个线程中共享相同的生产者和消费者,如果你愿意(或者可能是池化它们)”。
我不明白这条线是什么意思?在不同的线程中我们可以访问临时队列吗?这没有任何意义吗?谁能解释一下