共计 408 个字符,预计需要花费 2 分钟才能阅读完成。
最近了解了一下 saga, Orchestration-based sagas 这些设计,貌似看起来非常的复杂,但是我觉得分布式事务的问题很好解决才对
-
比如一个 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 掉,导致数据不一致。
- 但是再怎么复杂的分布式事务的设计,发送回退的指令的时候也有可能出现未知情况啊
为啥我这样想,觉得分布式事务也不是啥复杂的东西呢。
正文完