【发布时间】:2021-11-28 18:36:07
【问题描述】:
我有一个非常简单的问题。调用另一个微服务的最佳设计是什么,将其放入服务层或存储库层?
我的项目有层Controller -> Service -> Repository。假设从MicroserviceA我想调用MicroserviceB,我应该在哪一层调用?
我知道repository是用来和持久化数据交互的(主要是调用DB),但是,也用来调用另一个服务?
我在互联网上找到了多个定义和示例,例如 this answer,上面写着:
存储库负责将您的数据从存储格式映射到您的业务对象。它应该处理如何从存储读取和写入数据(删除,更新)。
另一方面,服务层的目的是将业务逻辑封装到一个地方,以促进代码重用和关注点分离。
Repository 层用于访问数据库,有助于扩展对数据库的 CRUD 操作。而服务层由应用程序的业务逻辑组成,并且可以使用存储库层来实现涉及数据库的某些逻辑。
所以我可以认为对另一个微服务的调用可以在服务层完成,因为它是业务逻辑的一部分,不涉及数据库,但另一方面,另一个微服务是否可以被视为“存储”,然后是存储库必须将响应映射到业务模型?
谢谢。
【问题讨论】:
标签: architecture microservices repository-pattern