2
他们说异步回滚可以用saga模式,,真的吗
他们说异步回滚可以用saga模式,,真的吗
为何要异步回滚?
A服务发送请求B服务接着执行,,A到B 是一个异步操作,,B失败,A B都要回滚,这种场景
这个跟事务模式没关系,saga是同步执行请求,等待结果,回滚和重试恢复都是可异步化的
异步的你只要a调b,用CompletableFuture调用,最后在a的方法return前用get()阻塞等待结果就行了
不是,我的意思是A立即得到B的响应,,然后B是异步执行具体的业务逻辑,,如果B出问题,,最后都回滚,能支持么
这种即便是saga也不行,异步化的动作就代表最终一致性,因为动作的执行结果是不可预知的,a提交了事务,可能1个小时后才能确定b的状态,这种不如自己手动补偿吧,这种我个人认为都不能称之为事务,你想想你a提交了事务,他的数据被锁定或者脏读超过了N个时间段,业务难道不会有影响?这个个人感觉只是数据的流转罢了
嗯是的