推模式: 消息中间件主动将消息推送给消费者(有多少就消费多少)
拉模式: 消费者主动从消息中间件拉取消息(可指定消息数量)
RabbitMQ主要基于"推模式"工作的
1.用RabbitMQ的SDK实现推/拉模式
①推:channel.basicConsume
②拉:channel.basicGet
2.用SpringBoot实现推/拉模式
①推:@RabbitListener
②拉:rabbitTemplate.receive( 填需要拉取消息的队列 )
3.总结:
①:推模式: 对消息的获取更加实时,适合对数据实时性比较高时,如:实时数据处理,如监控系统,报表系统等
②:拉模式: 消费者可按自身处理速度来消费,避免消息积压,适合需要流量控制,或需要大量计算资源的任务,拉取模式允许消费者在准备好后再请求消息,避免资源浪费.