分布式事务解决方案

业务场景描述

下单时,需要扣减库存和生成订单,两个操作要求确保同时成功或同事失败,需要分别调用不同的服务便形成了分布式事务问题

解决方案

采用弱一致性的解决方案

1.重试机制

第一步执行成功后,将生成订单操作发送到消息队列中,消费生成订单消息,如果失败,采用重试机制,重试后依然失败,放入死信队列中,人工介入

2.回滚

生成订单失败时,则调用库存更新接口进行回滚

3. 本地消息表

解决发送MQ时机器宕机
使用本地事务当扣减库存成功时,将消息发送到一张消息表中,然后开启定时任务去将消息表中的数据发送到MQ处理

posted @ 2023-07-03 14:34  FromZeroToOne  阅读(13)  评论(0编辑  收藏  举报