或者说有更好的规范还是怎么处理之类的能保证事务一致( http 调用 ,非 RPC 调用)
业务场景: 如果本地接口增加 A 服务器必须同步 增加 B、C (先加 B 后 C ) 数据 。但是新增 B 成功了 新增 C 的时候失败,这时候如果抛出异常只会不添加 A 数据, 但是 B 新增完不会新型回滚
或者说有更好的规范还是怎么处理之类的能保证事务一致( http 调用 ,非 RPC 调用)
业务场景: 如果本地接口增加 A 服务器必须同步 增加 B、C (先加 B 后 C ) 数据 。但是新增 B 成功了 新增 C 的时候失败,这时候如果抛出异常只会不添加 A 数据, 但是 B 新增完不会新型回滚
|
1
有人知道吗?
|
|
nullenAug 20, 2018
2
重试,幂等。
|
|
3
@nullen 有没有文章来看一下,如果用幂等
|
|
mooncakejsAug 20, 2018 via iPhone
4
没办法的啊,只能把它放进失败队列,等着人工处理
|
|
5
@mooncakejs 这也是一种方案 ,但是必须配合熔断处理吧。 我想说不依靠人工代码进行解决
|
|
darkbloodAug 20, 2018 via Android
6
tcc 事务
当然 仍然是业务代码 |
|
7
@darkblood 如果是 TCC 事务 还是要自己去撸相应的取消前面失败的逻辑 。
|
|
8
56 个收藏的人,有大佬解答一下吗
|
|
lolizeppelinAug 20, 2018 via Android
9
openstack 为这专门写工作流引擎
把整个包进工作流里呀 |
|
10
好吧 有没有来点具体一点的干活,大家都给一个大致方向,有没有具体一旦的示例例子的网站?
|
|
lolizeppelinAug 23, 2018 via iPad
11
我说了呀。openstack 呀
具体流程参考 Cinder 怎么处理块存储分配的 |