【发布时间】:2020-10-05 04:26:37
【问题描述】:
过去几个月我一直在研究微服务架构应用程序,但我仍在努力适应分布式特性。我多次注意到一种模式,但我不确定处理它的首选方式是什么。
假设我们有服务 A、服务 B 和服务 C。服务 A 公开一个 API,其中一种方法依赖于调用 B 公开的 API 来创建资源 RB,还依赖于 C 公开的 API 来创建资源资源 RC。因此,在一个完美的世界中,A、B 和 C 都可以正常工作,但我注意到几次的用例是,在执行 A 公开的 API 逻辑期间,B 或 C 可能会关闭。甚至更多是如何做到的应该在创建 RB 时解决,C 已关闭,因此无法创建 RC,我们尝试通过在服务 B 上调用 /delete/ 来回滚 RB 的创建,但在此期间 B 也关闭了。现在RB被创建了,但最终它不应该,因为RC失败了,A的API逻辑应该执行。
相同的 A、B 和 C 可能是集群环境中的 3 个节点,当数据发布到其中一个节点时,尝试在集群中传播数据。
抱歉,文字太长了, 谢谢。
【问题讨论】:
-
查找最终一致性
标签: api design-patterns architecture microservices rollback