【发布时间】:2020-05-09 19:33:31
【问题描述】:
我即将开始一个微服务项目的工作,它有一个共享的 postgres 数据库,由 hibernate 访问。我对感兴趣 。打包代码库的最佳方式是什么。
多个微服务将访问数据库,这可能导致一个或多个微服务想要访问同一个 java DTO 对象。
我可以将所有 DTO 对象打包到公共 jar 并授予微服务对 jar 的访问权限,或者我在不同的微服务之间共享不同的 DTO,这可能会导致同一 DTO 的多个实例,但会保持单个微服务代码库的纯净。
我通常的首选方法是构建一个通用 jar 文件,以便在必须维护的代码量上进行编码。
在这个问题上是否有任何学校?
同样的问题也有一些共同的常量需要共享
【问题讨论】:
-
在创建独立的微服务时,一般要避免共享东西。您首先声明了您想要分享的所有内容,这使得它更适合成为一个单体项目。
-
Hibernate 期望数据库的每个表都有一个 java DTO,因为一些微服务共享对同一个表的访问,一些读取容量是一个问题,因此问题
-
Hibernate 使用 entities (并不是每个表都需要它们),DTO 是另一回事。但这不是重点。共享数据库通常是微服务的一大禁忌,所以我告诉你,你遇到了架构问题(主要是你想要创建微服务,但你打算 创建一个伪装成微服务的单体应用程序)。
标签: java hibernate microservices packaging