纯干货不罗嗦:
通常在做服务化拆分后要保证事务的一致性是件很麻烦的事情,我们可以借助mq轻松实现:
例子:用户下单成功后,通知支付系统,支付系统把支付结果通知到订单系统,这中间不能出现失败,如果失败就回滚!如何实现呢?
用户下单后,把消息推送给mq,mq支付系统接受mq的订单消息,如果接受失败,mq会发起重试直到支付系统成功接受为止,如果支付系统接受成功,就应该把支付结果推给mq,订单系统接受支付结果消息进行后续处理。如果是支付失败的消息就根据自己的业务逻辑,修改订单状态或者删除订单,如果成功就可以发货啦。
其实很简单,利用mq即能结果订单同步的性能问题,又能解决事务问题!