如果在Rabbit MQ消息队列中使用相同的路由密钥将多个队列预订到同一交换,会发生什么

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

我有一个名为“ videoexchange”的通知交换

我有3个队列q1,q2和q3

所有3个队列q1,q2和q3都使用相同的路由键“ * .encoding”订阅了相同的交换机“ videoexchange”

[当使用路由键“ * .encoding”将有效负载发送到“ videoexchange”交换时,所有三个队列将接收该有效负载还是仅一个队列将接收该有效负载?

rabbitmq message-queue
1个回答
0
投票

默认情况下,RabbitMQ将按顺序将每个消息发送给下一个使用者。平均而言,每个消费者都会收到相同数量的消息。这种分发消息的方式称为round-robin

或者,您也可以使用“使用者优先级”,它可以确保高优先级使用者在活动时接收消息,而只有当高优先级使用者阻塞时,消息才发送给较低优先级使用者。

通常,连接到队列的活动使用者会以循环方式从队列中接收消息。当使用使用者优先级时,如果存在多个具有相同高优先级的活动使用者,则会循环传递消息。如果不使用优先级,则每个队列的默认优先级权重为1

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