ActiveMQ 如何在消费者之间分发消息?

How does ActiveMQ distribute messages among consumers?

我正在使用 ActiveMQ。

问题出现了,我们有一个请求队列,我们​​在其中留下一条消息供消费者执行流程,然后 return 在生产者订阅的响应队列中响应。 它工作正常,但现在有第二个生产者为同一个消费者发送消息以执行操作和 return 响应队列中的响应。

因为ActiveMQ决定响应队列的哪些消费者对应进程的响应。这是一个更详细的图表:

在 request/response 消息传递模式中,CorrelationId 用于关联请求和响应。例如,如果生产者 A 发出消息 ID 为 1000 的请求。消费者处理该请求并发送响应消息,其中 CorrelationId 设置为请求消息的消息 ID(本例中为 1000)。然后生产者在想要获取响应消息时设置一个过滤条件“give me message from response queue where respnseMessage.CorrelationId=requestMessage.messageId”。这就是 requests/responses 的相关性。