首页 > 解决方案 > 解决微服务之间的设计依赖

问题描述

我正在使用微服务方法设计一个电子商务应用程序,使用 ORM(JPA) 为名为 OrderService 的微服务之一提供数据持久性。OrderService 拥有与持久化和报告订单相关的功能,其中主要包括客户和产品信息。客户和产品功能由不同的微服务管理。我的问题是在 ORM 层 OrderService 需要属于 ProductService 和 CustomerService 的 POJO。处理服务之间的这种依赖关系的最佳方法是什么?应用程序需要以不同的方式设计吗?

标签: ormmicroservices

解决方案


尝试寻找解决方案时应该考虑的事项很少 1. 您无法访问其他服务的数据库,您必须拨打电话。2.您应该尽量不要将来自其他服务的数据保存到您的服务中。数据重复会导致不一致的状态,如果可以的话应该避免 3. 您应该有一种方法可以在被要求时从其他服务中查询数据。

现在有了这些要点,我将主要将来自其他服务的数据限制为一些参考 id(应该是不可变的)。在 ORM 层,我将只获取引用 ID 并通过对相关服务(业务层)进行 API 调用来膨胀它们。

您可能会意识到您使用客户 ID 向客户服务提供客户名称的调用次数过多,如果是这种情况,您可以考虑将其中一些信息保存在您的系统中。但请注意。您保存的数据不应不稳定,并确保您在拨打电话时已尽职尽责。


推荐阅读