消息队列之RabbitMQ

为什么要使用消息队列

1. 实现异步

2. 实现解耦

串行任务的并行化

3.流量削峰

高负载任务的负载均衡,高并发流量先放到消息队列中,进行异步处理

4.实现广播

发布/订阅模式,比如下图中,要增加积分系统,只需要积分系统绑定监听即可


RabbitMQ的工作模型


RabbitMQ 交换机类型

1. 直连类型 Direct Exchange

2.主题类型 Topic Exchange

3.广播类型 Fanout Exchange

SpringBoot集成RabbitMQ

1. 配置类:创建交换机,创建队列,创建绑定关系

2. 消费者: 监听队列 @RabbitListener

3. 生产者: AmqpTemplate 或者RabbitTemplate 已经封装好了

4. 服务器信息配置:生产者和消费者都要配置

消息可靠性投递分析

如何确保消息发送到RabbitMQ服务器

1. 使用Rabbit的事务模式,channel.txSelect()等等,类似于数据库事务,不过这种模式是同步阻塞的


2.另外使用confirm的模式,使用异步的方式

如何处理交换机无法路由的消息

1. 可以在channel上绑定监听器,无法找到的时候会有反馈

2. 指定收到无法路由的消息时候,发送到制定的队列

你可能感兴趣的:(消息队列之RabbitMQ)