我们正在开发一个REST API,其中客户端(应用程序)将调用我们的REST API。
客户端(应用程序)将处理具有回滚功能的业务逻辑(例如,如果更新"Shipment“服务通过而更新"Stock”服务失败,则客户端可以回滚。
有许多关于TCC尝试/确认/取消的在线文章,这些文章描述了通过POST/DELETE方法保留/取消资源,但没有一篇文章描述如何处理PUT请求。将“库存”计数更新1,并在失败时回滚。
有谁知道处理PUT回滚的解决方案(既然PUT请求覆盖了原始数据,我们如何回滚到原始数据)?
发布于 2018-12-10 23:48:15
发布于 2019-04-04 10:32:03
对于TCC模式,confirm操作使用PUT作为幂等特征。当实现这样的行为时,如果部分预订被确认,而其他预订已经过期,我们可以使用cancel操作来模拟回滚行为,以便每个确认的参与者链接将与另一个DELETE请求一起发送。我在一个预订系统中用Java写了一个关于最小TCC实现的tutorial article。你可以参考那里的实现。
https://stackoverflow.com/questions/49995486
复制相似问题