一、介绍
消息队列,应用系统间消息传递的方式。
可以用来做异步,把实时性要求低的业务分离出来,提高系统响应时间。
也可以用来做应用解耦。
主要的应用:日志、秒杀高响应、业务解耦
问题:消息队列带来了一致性问题。
二、文摘
消息队列(MQ)是一种应用程序对应用程序的通信方法。
应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。
不同于直接调用,如dubbo,队列的使用除去了接收和发送应用程序同时执行的要求。
MQ是消费-生产者模型的一个典型的代表。
RabitMQ基于ERLANG语言
消息队列应用场景:
1、异步处理:
用户注册后,需要发注册邮件和注册短信。
引入消息队列,将不是必须的业务逻辑,异步处理。写入消息队列的速度很快,系统的吞吐量提高
2、应用解耦
用户下单后,订单系统需要通知库存系统。
3、流量削锋
一般在秒杀或团抢活动中使用广泛。
用户的请求,服务器接收后,首先写入消息队列。假如消息队列长度超过最大数量,则直接抛弃用户请求或跳转到错误页面;
秒杀业务根据消息队列中的请求信息,再做后续处理。
4、日志处理
5、消息通讯
实现点对点消息队列,或者聊天室等。
三、附加