一、概念
消息队列(Queue)可以比作一个存放消息的容器,当我们需要使用时就从容器中取出数据进行使用。它是一种先进先出的数据结构。
二、使用消息队列的好处
1、通过异步处理提高系统性能
2、降低系统耦合性
三、使用消息队列的三种情形?
异步:A发送请求给B,B不能立即响应,A需要等待B完成后才能发送下一个请求,这样就造成了A系统的资源浪费,使用消息队列后,A直接请求后直接将消息丢入队列中,就完成了一次请求,然后继续处理下一个请求
解耦:A发送数据给B、C、D、E,不使用队列时会出现某系统不需要而其余系统需要的情况,使用消息队列的话,A系统就只负责生产数据,不需要考虑消息被哪个系统来消费
削峰:当A系统到某个点,请求数量暴增,B系统响应不过来,这样就会导致系统崩溃,我们引入队列的话请求数据线存入消息中间件系统中,消费系统慢慢拉取消费
四、数据传输
普通数据传输
用户 ⇄(发送请求) ⇄ 网站应用服务器 →(保存数据) →数据库服务器
使用队列进行数据传输
用户 ⇄(发送请求) ⇄ 网站应用服务器 →(发送消息) → 消息队列服务器 → (保存数据) → 数据库服务器