RabbitMQ:在 pub/sub 中是消费者轮询队列以获取新消息还是服务器推送消息?

RabbitMQ: In pub/sub is the consumer polling the queue for new messages or does the server push messages?

我似乎无法在任何地方找到此信息,或者我可能不理解。在 RabbitMQ 的 publish/subscribe 模式中,当生产者产生消息时,消费者如何知道队列中有新消息?

消费者是否不断轮询队列以检查是否有任何新消息,或者交换 'push' 通知消费者是否有新消息?

消费者打开网络 TCP 连接和到 RabbitMQ 服务器的通道。

一个basic get会向服务器请求消息:消息是由客户端从服务器拉取的。如果没有消息可用,则向客户端发送空响应。

A consume 将启动一个消费者场景:服务器将消息推送到客户端。

所以消费者会知道有消息,因为它可以拉他们(获取)或者他们可以被推送给他(消费)。

The exchange 'push' notification to consumers saying there is a new message?

交换用于路由到队列。当消费者从队列中消费时,他们什么也不推。