目录
什么是消息队列?
区别于CS架构下,客户端发出请求,服务器处理请求,发回响应的同步模式,
消息队列则通过引入一个存放请求的中间层,来实现异步处理请求的模式,在某些场景下很有用
优点
- 业务解耦:
比如说,
下订单要修改库存,订单系统需要调用库存系统的接口,如果库存系统出问题则会影响订单系统,
用消息队列可以持久化订单消息,等库存系统恢复后再取消息处理
再比如
系统A依赖于系统B、C,调用它们的接口传递数据,现在想引入系统D,就得改代码了,用消息队列可以解耦,需要数据的自行去取
我有一个日志系统,会将记录的日志写入硬盘、打印到屏幕,现在我想加一个日志分析,就得修改代码,调用接口
而用消息队列的话,把日志扔到队列里,需要的系统自己去取,还能通过路由实现不同级别的日志统计
- 异步:把任务打包放到队列里,不用立刻处理任务,等到空闲时再取出进行处理,或让后台线程进行处理
- 削峰:高并发流量时,