[seata]他们说异步回滚可以用saga模式,,真的吗

2024-07-05 299 views
6

他们说异步回滚可以用saga模式,,真的吗

回答

2

为何要异步回滚?

4

A服务发送请求B服务接着执行,,A到B 是一个异步操作,,B失败,A B都要回滚,这种场景

5

这个跟事务模式没关系,saga是同步执行请求,等待结果,回滚和重试恢复都是可异步化的

8

异步的你只要a调b,用CompletableFuture调用,最后在a的方法return前用get()阻塞等待结果就行了

1

不是,我的意思是A立即得到B的响应,,然后B是异步执行具体的业务逻辑,,如果B出问题,,最后都回滚,能支持么

4

这种即便是saga也不行,异步化的动作就代表最终一致性,因为动作的执行结果是不可预知的,a提交了事务,可能1个小时后才能确定b的状态,这种不如自己手动补偿吧,这种我个人认为都不能称之为事务,你想想你a提交了事务,他的数据被锁定或者脏读超过了N个时间段,业务难道不会有影响?这个个人感觉只是数据的流转罢了

6

嗯是的