数据结构:
先进先出的队列
应用场景:
- 应用解耦
系统耦合高,容错性就越低,如下图,任意一个子系统出现故障,都会导致订单系统出现异常
当子系统出现故障,进行恢复了,能消费MQ的消息并进行返回,订单系统不会出现系统异常
- 流量削峰
流量瞬间猛增,导致系统压垮
如下图,把瞬时流量进行分散,提供稳定性和用户体验
- 数据分发
让数据在多个系统进行流通,数据生产方不关心谁使用
改同步消息为消息队列
MQ的优缺点:
- 优点
解耦,削峰,数据分发
- 缺点
系统可用性降低(MQ挂了)
系统复杂度增高(重复消费,消息丢失,顺序性)
一致性问题(A系统处理完,BC处理成功,D处理失败)