客户端库的循环依赖

Circular dependency of client libraries

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

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

我该如何解决这个问题?

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

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

但是,您使用紧密耦合的微服务所走的道路会导致 distributed monolith 这不太可能提供您所追求的好处(特别是包括您在此处提到的相互依赖的修订问题) .

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