一.什么是消息队列?为什么使用消息队列?消息队列有什么优点和缺点?
答:消息队列就是一个容器,当我们需要使用消息的时候,我们从容器中取出消息队列,来供自己使用。
消息队列是一种先进先出的数据结构,所以消费消息时也是按照顺序来消费的,比如生产者生产消息的
为什么使用消息队列:解耦,异步,削峰(三个优点)
解耦:如上图所示,如果A系统发送数据给BCDE系统,现在F系统也需要A系统的数据,那A系统就需要修改代码发送给F系统。因为A系统产生关键的数据,那是否要考虑BCD系统是否挂掉,是不是要重发,等耦合再一起。
使用MQ 如下图所示:A系统产生一条关键的数据,放到MQ队列中,如果那个系统需要用到这条数据,就去消息队列里消费,如果那个系统不需要这条数据,取消对该消息的订阅即可,因此A系统不需要去维护BCD系统成功还是失败
因此通过一个MQ就可以使A系统和其他系统进行了解耦
削峰填谷:如右图所示每天A系统在调用量都是在50左右只有在上午10点的时候会出现每秒高并发的请求大约5k/s,如果系统是基于数据库的,这样高的并发有可能把数据库挂掉,mysql的一