http 调用第三方接口成功后,如果自己本身接口报错,如何实现事务回滚?

2018-08-20 10:09:23 +08:00
 zhuangzhimin

或者说有更好的规范还是怎么处理之类的能保证事务一致( http 调用 ,非 RPC 调用)

业务场景: 如果本地接口增加 A 服务器必须同步 增加 B、C (先加 B 后 C ) 数据 。但是新增 B 成功了 新增 C 的时候失败,这时候如果抛出异常只会不添加 A 数据, 但是 B 新增完不会新型回滚

4016 次点击
所在节点    问与答
11 条回复
zhuangzhimin
2018-08-20 10:23:38 +08:00
有人知道吗?
nullen
2018-08-20 10:36:31 +08:00
重试,幂等。
zhuangzhimin
2018-08-20 13:59:33 +08:00
@nullen 有没有文章来看一下,如果用幂等
mooncakejs
2018-08-20 14:01:21 +08:00
没办法的啊,只能把它放进失败队列,等着人工处理
zhuangzhimin
2018-08-20 14:05:17 +08:00
@mooncakejs 这也是一种方案 ,但是必须配合熔断处理吧。 我想说不依靠人工代码进行解决
darkblood
2018-08-20 14:18:18 +08:00
tcc 事务
当然 仍然是业务代码
zhuangzhimin
2018-08-20 15:46:35 +08:00
@darkblood 如果是 TCC 事务 还是要自己去撸相应的取消前面失败的逻辑 。
zhuangzhimin
2018-08-20 19:09:46 +08:00
56 个收藏的人,有大佬解答一下吗
lolizeppelin
2018-08-20 19:23:57 +08:00
openstack 为这专门写工作流引擎

把整个包进工作流里呀
zhuangzhimin
2018-08-21 10:42:24 +08:00
好吧 有没有来点具体一点的干活,大家都给一个大致方向,有没有具体一旦的示例例子的网站?
lolizeppelin
2018-08-23 22:42:12 +08:00
我说了呀。openstack 呀
具体流程参考 Cinder 怎么处理块存储分配的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/481324

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX