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



我似乎在任何地方都找不到这些信息,或者我不明白它。在 RabbitMQ 的发布/订阅模式中,当生产者生成消息时,消费者如何知道队列中有新消息?

消费者是否

不断轮询队列以检查是否有任何新消息,或者交换是否向消费者"推送"通知说有新消息?

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

基本的 get 将要求服务器提供消息:消息由客户端从服务器拉取。如果没有可用的消息,则会向客户端发送空响应。

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

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

交易所向消费者"推送"通知说有一个新的 消息?

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

最新更新