比如一个 task 需要 a 服务 insert mongo, b 服务 insert mysql ,必须两个都 insert 成功才算是 task 成功了。
那么我就用 c 来做统筹工作,c 向 a b 发 http 指示它们 insert, 如果 a b 都返回 200 ,那就算成功了
如果有任何一个 insert 失败,那就向失败的那个发送回退的 http 就好了啊,insert 的话就是 delete 啊
然后 a b c 我可以多部署几个拷贝来保证可用性,http blocking 的并发问题用 non-blocking 的比如 webflux 这类技术来解决
如果考虑一致性的问题,比如回退过程中哪个服务 down 掉,导致数据不一致。
为啥我这样想,觉得分布式事务也不是啥复杂的东西呢。