作为一个测试,近两天开发大哥叫我学习消息队列,我也不知道什么时候能用上,起码我的测试脚本是用不到消息队列的。就当知识储备了。
先上概念:
消息队列从字面的含义来看就是一个存放消息的容器。
消息队列可以简单理解为:把要传输的消息放在队列中。
消息:数据
队列:一种先进先出的数据结构
而我们把数据放到消息队列叫做生产者,从消息队列里边取数据叫做消费者。
有什么用?
1:解耦
什么是解耦。首先了解耦合,多个系统之间通过接口互相调用,此时耦合性非常高。比如,支付系统要将用户完成支付的消息发送给积分系统,等待积分系统返回结果再发送消息给短信系统。引入消息队列后,可以将支付完成的消息存储到队列,让积分,短信系统自己去拉取消息进行处理,这个过程叫做解耦。针对这个例子来说好处就是,支付系统的开发人员可以减少精力在接口管理上。
2.异步
首先并非用线程去做异步。基于解耦,各个的系统都可以通过监听支付成功的消息来运行,实现异步执行。
3.削峰
流量过大时,解决过载问题。场景想象成每年的双十一0点,数据流大吧,如果当时服务器处理能力不够会导致崩溃。那么我们完全可以将几十亿的请求消息存储在消息队列当中,分批处理。