利用事务消息实现分布式事务

前提是你 提交于 2019-11-28 15:29:56

一、消息事务

其实很多场景下,我们“发消息”这个过程,目的往往是通知另外一个系统或者模块去更新数据,消息队列中的“事务”,主要解决消息生产者和消息消费者的数据一致性问题

 

用户在电商APP上购物时,先把商品加到购物车里,然后几件商品一起下单,最后支付,完成购物流程。

这个过程中有一个需要用到消息队列的步骤,订单系统创建订单后,发消息给购物车系统,将已下单的商品从购物车中删除。因为从购物车删除已下单商品这个步骤,并不是用户下单支付这个主要流程中必要的步骤,使用消息队列来异步清理购物车是更加合理。

对于订单系统,它创建订单的过程实际执行了2个步骤的操作:

  • 在订单库中插入一条订单数据,创建订单;
  • 发消息给消息队列,消息的内容就是刚刚创建的订单

对于购物车系统:

  • 订阅相应的主题,接收订单创建的消息,然后清理购物车,在购物车中删除订单的商品。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!