业务相关

1.支付业务失败场景

1.调用api接口扣除库存,满足幂等性,即使多次调用api,库存仍旧只会扣除一次

2.回滚操作也就是函数 rollBackProductQty,也要满足幂等性,执行多次,库存的补偿只能一次

3.在下单过程,很调用很多类似库存这样的api节点,假设A,B,C,D四个api,C失败后,那么B,A都要回滚, 回滚可以调用相应的回滚函数。

4.在回滚的过程中可能宕机,因此,我们还需要有一个后台脚本,进行做检查,对于完成一半的分布式事务,调用回滚函数进行补偿,来满足最终一致性。另外,还要看这种补偿机制,是否会对业务有影响。

5.回滚补偿函数,可能会一直失败,譬如在产品库存补偿的时候,产品下架了,导致补偿一直失败, 因此,对于补偿脚本,应该要有一个记录,补偿次数超过最大次数,则不再运行补偿脚本,人工介入,查看是什么原因导致补偿脚本一直失败。

posted @ 2022-02-14 20:34  dsfsadfdgd  阅读(65)  评论(0)    收藏  举报