RabbitMQ微服务-并行处理

问题描述 投票:1回答:3

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

微服务之间的调用是异步http请求,并且每个服务都在特定队列上订阅

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

java rabbitmq microservices
3个回答
0
投票

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

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

发布者-> Exchange --->(带有标题)绑定到队列->侦听器


0
投票

抱歉,我尝试解释更多:

该场景是我们处于微服务体系结构中,因为响​​应调用者服务中的大量数据将在rabbitmq队列侦听器中接收响应

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

那里有最适合听众的实现方式>>

谢谢

对不起,我想进一步解释:

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

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

侦听器是否有更好的实现


0
投票

对不起,我想进一步解释:

© www.soinside.com 2019 - 2024. All rights reserved.