这几年消息队列这个中间件比较火,一直在关注这个技术,现在做一些简单的总结吧

1.什么是消息队列

  队列就像我们排队做核酸,先进先出(fifo),只不过排队的是消息

2.消息队列的好处

  比如淘宝双11大促,我们整点下单,服务器会做这样几件事 1.增加你的积分 2.后台下单  3.给你推送消息  等等,

 

那如果是顺序同步执行,所花费的时间=系统2 +系统3 +系统4,一个下单可能就要耗费好几秒,这肯定不行,那么现在就可以引入消息队列,系统1把下单这个消息放到队列中,哪个系统去取消息系统1并不关心,所花费的时间=系统1+把消息放到队列的时间,用户的等待时间大大缩短,那现在的架构就变成了这样

 

 

 

好处如下: 1.异步,这个应该不需要多解释,系统2,3,4可以异步执行

2.解耦  系统1的耦合度大大降低

3.削峰  当1s有10000个并发请求时,系统2,3,4只能同时处理2000个/s,那么队列中的消息处理就需要5s才能全部处理完,说白了就是把一些对实时性要求不是那么高的操作使用队列来存放,如果大量请求来了,慢慢处理也是可以的

 

3.消息队列的坏处

  凡是都有好还,引入消息队列的好处很明显,那坏处呢

  1.系统变复杂了

  2.要保证消息队列的高可用

  3.要保证系统2,3,4消费的一致性,3个系统都必须消费

 

4.常用的消息队列中间件

  rabbitmq,kafka