通俗的说,就是一个容器,你把消息丢进去,不需要立即处理。然后有个程序去从你的容器里面把消息一条条读出来处理。
起到暂存的作用。列如mysql一次只能同时写入100,先把1000存入消息队列。
业务系统触发短信发送申请,但短信发送模块速度跟不上,需要将来不及处理的消息暂存一下,缓冲压力。就可以把短信发送申请丢到消息队列,直接返回用户成功,短信发送模块再可以慢慢去消息队列中取消息进行处理。
我是这样理解的:比如,你在简书注册了,简书要通知老板有人注册了——重点来了,通知老板这件事和你无关,或者说,你并不关心!你只关心注册是否成功!因此,消息队列在此隆重登场!——你可以把所有和用户无关的全部插进去!正确的是,立马返回给用户注册成功,再插!
让我们再站在更抽象的高度来审视这个问题吧。那就是——返回在前,操作在后——当然,你要确保这些操作在逻辑上和返回是无关的——而这,如何解耦,正是体现一个程序员的功底之处了。