客户端库的循环依赖

时间:2021-06-28 16:37:37

标签: microservices circular-dependency

我目前正在做 2 个微服务,微服务 A 包括微服务 B 的 SDK 来调用 B 的 API 并访问一些实体类。 同样微服务B也包含微服务A的SDK,访问微服务A的实体类。

现在我面临一个问题,当我需要在微服务 A 中提升微服务 B 的版本时,反之亦然。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您已经通过tightly coupling这两个服务违反了微服务的基本规则。

这里的正确答案是重构这些服务,以便它们正确且完整地封装功能。这可能涉及组合它们(如果 B 始终完全依赖于 A,它们可能并不是真正独立的服务)、将它们拆分为更多服务,或者只是转移责任。

但是,您采用紧耦合微服务的方式导致 distributed monolith 不太可能提供您所追求的好处(特别包括您在此处提到的相互依赖的修订问题)。< /p>

这是一个相关问题的good answer,可能会提供更多见解。