RebbitMQ
简介
消息中间件,将消息以队列的形式进行排序,解决突如其来的浏览导致的系统崩溃,实现模块间的解耦,具有可扩展性、高可用、易用性
组成
- 生产者:负责发送消息给交换机
- 交换机:拿到生产者发送的消息发送给消息队列
- 消息队列:接收到交换机发送的消息,等待消费者接收
- 消费者:从消息队列中接收消息
应用场景
-
异步处理:
将不需要马上响应的消息交给消息队列去处理,比如注册用户成功时的发送邮件,发送邮件需要消耗比较长时间并且不需要马上发送,可以交给消息队列派发给消费者去处理
-
解耦:
将订单系统和库存系统分离,库存系统通过订单系统发送的消息,来实现两个系统之间的通信
-
流量削峰:
秒杀活动,同一时间会有大量请求,将请求放到消息队列中进行排队,消费者一个一个去处理请求
交换机(Exchange)类型
- 扇形交换机(fanout):广播的形式发送消息到绑定的消息队列
- 直连交换机(direct):通过指定路由key向绑定的消息队列发送消息
- 主题交换机(topic):通过指定路由key(模糊匹配,#表示零个或多个单词,*表示一个单词)向绑定的消息队列发送消息
- 首部交换机(headers)