这几年消息队列这个中间件比较火,一直在关注这个技术,现在做一些简单的总结吧
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