1.1 消息队列的概念
MQ全程message Queue(消息队列),是在消息传输过程中保存消息的容器。多用于分布式系统之间进行通信。
A/B为构成一个系统的子系统,AB之间通讯一中方式为AB直接通讯。
第二种方式为借助第三方间接通讯
1.2 MQ的优势和劣势
优势:
应用解耦、异步提速、削峰填谷
劣势:
系统可用性降低、系统复杂度提高、一致性问题
1.3 MQ的优势
1、应用解耦
整个链路中,库存系统错误会导致其他系统无法完成,直接导致订单系统结果错误,系统扩展需要修改订单系统。维护性差。
系统耦合性越高、容错性越低、可维护性越低
使用中间MQ,各子系统只需要从MQ各自获取消息分别进行消费,即便库存系统短暂异常,待其恢复后MQ中拿到消息进行消费和业务处理即可,不影响其他系统的运行,扩展时无需修改订单系统,只需要对接MQ消息进行消费。
使用MQ使得应用间解耦、提升容错性和可维护性。
2、异步提速
一个订单耗时: 20 + 300 + 300 + 300 = 920ms (整个链路同步进行)
用户点击完下单后,需要等待920ms后才能得到下单响应,太慢!(一般200ms以内正常)
加入MQ场景:
用户点击完下单按钮后,只需要等待25ms就能得到下单响应(25ms + 5ms)
提升用户体验和系统吞吐量(单位时间内处理请求数目)
3、削峰填谷
1.4 MQ的劣势