同步调用优点:
时效性强,打电话、直播,很快可以得到结果
同步调用的问题:
耦合度高
性能和吞吐能力差
有额外的资源消耗
有级联失败的问题
异步:
对高并发有要求的功能使用异步
优点:
耦合度低
性能和吞吐能力高
流量削峰(对秒杀来说很重要)
故障隔离
缺点:
异步时效性没有同步好
依赖于Broker可靠性、安全性等要求高·1—————》Broker—>mq消息队列
架构明显变复杂了
场景:
双11是购物狂节,用户下单后,订单系统需要通知库存系统,传统的做法就是订单系统调用库存系统的接口
订单系统:用户下单后,订单系统完成持久化处理,将消息写入消息队列,返回用户订单下但成功。
库存系统:订阅订单的消息,获取下单信息,进行库操作。就算库存系统出现故障,消息列队也能保证消息的可靠投递,不会导致消息丢失
流量削峰
场景:秒杀活动,一般会因为流量过大,导致应用挂掉,为了解决这个问题,一般在应用前端加入消息队列
作用:
1,可以控制活动人数,超过此阈值的订单直接丢弃
2,可以缓解短时间的高流量压垮应用(应用程序安自己的最大处理能力获取订单)