RabbitMQ微服务-并行处理

时间:2020-02-12 14:53:01

标签: java rabbitmq microservices

我正在使用rabbitmq作为消息传递系统来开发微服务架构中的应用程序。

微服务之间的

调用是异步http请求,每个服务都在特定队列上订阅

我的问题是,调用是无状态的,如何不通过Rabbitmq队列中的routing-key而是通过http调用本身来保证消息通信的并行化,也就是说,对于n调用,每个服务都必须能够监听到只需要的消息。

2 个答案:

答案 0 :(得分:0)

不确定我是否完全理解了这个问题,但是根据描述,我可以提出以下建议:

如果每个服务都挂接到特定的侦听器,并且您不想为Queue + Listener集成关联路由键,那么可以尝试使用标头参数。 [您可以使用QueueBuilder.withArguments API设置队列应该监听的特定Header值] 需要一种机制,通过这种机制,交换将绑定到特定队列,从而绑定到侦听器服务。

Publisher-> Exchange --->(带有标题)绑定到Queue-> Listener

答案 1 :(得分:0)

抱歉,我想进一步解释:

这种情况是我们处于微服务架构中,由于巨大的数据响应,呼叫服务将在侦听器Rabbitmq队列中收到答案。

因此,让我们想象一下,同时进行了两个调用,并且两个查询开始将数据加载到同一队列中,调用服务正在等待消息并添加接收到的消息,但是无法区分调用者1和调用者2的数据。

侦听器是否有更好的实现