对不起,我想进一步解释:
我正在使用rabbitmq作为消息传递系统来开发微服务架构中的应用程序。
微服务之间的调用是异步http请求,并且每个服务都在特定队列上订阅
我的问题是,调用是无状态的,如何保证不是通过Rabbitmq队列中的routing-key而是通过http调用本身来保证消息通信的并行化,也就是说,对于n调用,每个服务都必须能够监听只需要消息。
不确定我是否完全理解了这个问题,但是根据描述我可以提出以下建议:
如果每个服务都挂接到特定的侦听器,并且您不想为Queue + Listener集成关联路由键,那么可以尝试使用标头参数。 [您可以使用QueueBuilder.withArguments API设置队列应该监听的特定Header值]需要一种机制,通过该机制,交换将绑定到特定队列,从而绑定到侦听器服务。
发布者-> Exchange --->(带有标题)绑定到队列->侦听器
抱歉,我尝试解释更多:
该场景是我们处于微服务体系结构中,因为响应调用者服务中的大量数据将在rabbitmq队列侦听器中接收响应
因此,让我们想象一下,如果两个查询同时进行的两个查询都开始将数据加载到同一队列中,则调用者服务正在等待消息,并将追加接收到的消息,但是无法区分调用者1的数据和调用者2的数据。>
那里有最适合听众的实现方式>>
谢谢
对不起,我想进一步解释:
这种情况是我们处于微服务架构中,由于巨大的数据响应,呼叫服务将在侦听器Rabbitmq队列中接收答案。
因此,让我们假设同时进行两个调用,并且两个查询都开始将数据加载到同一队列中,调用服务正在等待消息并添加接收到的消息,但无法区分调用者1和调用者2的数据。
侦听器是否有更好的实现
对不起,我想进一步解释: