一、异步处理
使用异步处理的好处在于:
(1)可以更快的返回结果,或者说,只需要将核心处理步骤处理,就可以暂时认为已经成功处理请求。
(2)减少等待,实现了步骤之间的并发,提升了系统的总性能。
二、流量控制
对于瞬间来的大流量,系统需要在自身能力范围内尽可能多的处理请求,直接拒绝处理不了的请求,但是这样用户体验上不是很好,因为可以使用消息中间件的能力,既保护架构,又能够提升用户体验。
三、服务解耦
如果上下游服务之间通过接口通信,那么每次新增模块或者模块下架,核心模型也需要协助修改,那么线上业务的安全性无法得到保证。因此,可以采用消息队列的形式,上游只是将数据写入消息队列,下游的业务只需要按照所需要的主题进行订阅就可以,每个下有都可以获取一份实时完整的订单数据,而不需要对上游产生影响。
使用消息队列带来的问题
(1)降低了数据的一致性,这时候需要进行分布式事务,人工补偿等手段
(2)存在数据丢失危险,比如说宕机重启,比如说master数据没有同步到slave服务器导致的数据丢失等等