概念

        RabbitMQ 支持两种消息传递模式:

                推模式(push):消息中间件主动将消息推送给消费者。

                拉模式(pull):消费者主动从消息中间件拉取消息。

核心工作模式

        RabbitMQ 主要基于推模式工作,核心设计是让队列中的消费者接收生产者发送的消息:

        使用 channel.basicConsume 方法订阅队列时,RabbitMQ 会主动将消息推送给订阅该队列的消费者。

        如果仅需获取单条消息而非持续订阅,可使用 channel.basicGet 方法以拉模式消费消息。

 

Spring Boot实现推拉模式:

        生产者发送 20 条消息到 队列中

 

拉模式

推模式

 

 

 

Rabbit SDK 实现推拉模式

生产者发送 10 条消息到 队列中;

 

拉模式

一次只拉去一条消息;

 

 

推模式

一次收到所有消息;

推拉模式总结

推模式

        特点:消息获取更实时。

        适用场景:对数据实时性要求较高的场景,例如实时数据处理、监控系统、报表系统等。


拉模式

        特点:消费端可按自身处理速度消费,避免消息积压;允许消费者在准备好后再请求消息,避免资源浪费。

        适用场景:需要流量控制、或需要大量计算资源的任务。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐