我一直在研究一些使用 JMS 与 ApolloMQ 消息代理交互的服务器端 Java。客户端通过执行以下操作向此服务器发出同步请求:
- 创建一个用于接收响应的临时队列
- 将请求发送到标准请求队列,“回复”指向新的临时队列
- 等待临时队列上的响应
- 删除临时队列并重复
似乎为每个请求发布一个新的临时队列对于消息代理来说可能是昂贵的,并且可能会为每个请求引入额外的往返行程,以便首先创建临时目的地。我不想花很多时间自己验证这一点,我有点希望知道的人能证实这种直觉。改为为每个客户端会话创建一个临时队列并使用消息/相关 id 来匹配对请求的响应会更好吗?