【1】异步化提升性能
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2230cb4e217961f60cd5678d7e919626.jpeg)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/83ce612b57ae03f9dddd6df4c563319d.jpeg)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e018ae122701c416378e128f305d6837.jpeg)
【2】降低系统耦合
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0eb1bf526024105dc8dac61e03142b85.jpeg)
【3】流量削峰
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/68ae69d1ab758deab01ed7bfa468c255.jpeg)
假设系统A是不操作数据库的,只要多部署几台机器,就可以抗下每秒1w的请求,比如部署20台机器,
就可以轻松抗下每秒上万的请求。然后系统B是操作一台数据库服务器的,数据库的上限是每秒6K请求。
系统B无论部署多少台都没有什么用。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2af6941871736a0c732e35b781d3b84f.jpeg)
系统A把每秒1w请求都作为消息直接发送到MQ里面,MQ可以轻松抗下来1w请求。系统B只要慢慢的从MQ里面
获取消息然后写入数据库,保证对数据库的QPS不要超过他的极限值6000。因为系统A发送消息到MQ很快,系统
B从MQ消费消息很慢,MQ会积压一些消息。MQ都是基于磁盘来存储消息的,适当积压一些消息是可以的。