6. 为什么使用消息队列进行流量消峰?
传统模式下,如下图所示:
传统模式
- 对于大多数系统,一定会有访问量的波峰和波谷。比较明显的,就是我们经常使用的美团外卖,又或者被人诟病的小米秒杀。
- 如果在并发量大的时间,所有的请求直接打到数据库,造成数据库直接挂掉。
引入消息队列后,如下图所示:
新模式
- 通过将请求先转发到消息队列中。然后,系统 A 慢慢的按照数据库能处理的并发量,从消息队列中逐步拉取消息进行消费。在生产中,这个短暂的高峰期积压是允许的,? 相比把数据库打挂来说。
- 当然,可能有胖友说,访问量这么大,不会把消息队列给打挂么?相比来说,消息队列的性能会比数据库性能更好,并且,横向的扩展能力更强。