cra*_*bly 5 php node.js microservices
在微服务架构中,使用客户端包在服务之间进行通信,我们遇到了两个客户端包相互依赖的问题,从而产生了循环依赖。
我们正试图为此找出最佳解决方案,我想知道是否有人能够帮助我们或为我们指明正确的方向。
这是场景:
每当任何服务需要与 Car 服务通信时,它都应该使用 CarClient 包来完成。每当任何服务需要与 Insurance 服务通信时,它都应该使用 InsuranceClient 包。
CarClient 包有一个数据传输对象 (DTO) Car,其中一个属性是insurance. 此属性的类型是 InsuranceClient 包中可用的 DTO CarInsurance。
问题是当CarInsuranceDTO 需要访问 CarClient 包中可用的枚举时,CarTypeEnum. 现在我们有两个相互依赖的包。
我能想到的可能解决方案:
任何帮助表示赞赏。
您不应该在服务之间共享任何代码,因为这违背了它们 100% 独立的全部目的。
在 MS 架构中,CarDTO 仅具有与汽车相关的属性。如果您需要有关保险的信息,则需要单独调用保险服务来获取仅包含保险属性的 InsuranceDTO。
当调用任一服务时,您将使用一些键将它们连接在一起。也就是说,您可以使用从客户服务处获得的 customerId 来调用汽车服务,并且您的 CarDTO 将有一个 carId,然后您可以使用 customerId/carId 来调用保险服务来获取 InsuranceDTO。