java - 将通用代码打包到微服务应用程序中

标签 java hibernate microservices packaging

我即将开始一个微服务项目的工作,该项目有一个共享的 postgres 数据库,由 hibernate 访问。我对感兴趣 。打包代码库的最佳方法是什么。

多个微服务将访问数据库,这可能会导致一个或多个微服务想要访问同一个 Java DTO 对象。

我可以将所有 DTO 对象打包到公共(public) jar 并允许微服务访问该 jar,或者在不同的微服务之间共享不同的 DTO,这可能会导致同一 DTO 的多个实例,但会保持单个微服务代码库的纯净。

我通常首选的方法是构建一个通用的 jar 文件,以便在必须维护的代码量上进行编码。

在这个问题上有没有什么流派可以通过?

同样的问题也有一些共同的常量需要共享

最佳答案

微服务不共享数据库,或者更一般地说:

Microservices do not share a common state.

存在三种可能的情况:

一:您尝试拆分一个小用例。那么您只需要一个微服务。

二:数据管理是一个单独的问题。然后您应该创建一个独特的服务来处理数据。该服务随后将被您的其他服务使用。

三:您正在尝试在一个数据库中管理多个不同的用例。然后,您的每项服务都会有一个专用数据库。

实际上,即使执行两个,您也可能会执行三个,因为您的微服务应该保持功能(响应性且至少部分有用),即使服务使用由于某种原因,所有这些都已关闭。

关于公共(public)常量:它们可能需要冗余地打包到每个 Micrososervice 中。不过,您可以共享一个公共(public)库(阅读:maven 工件)。

关于java - 将通用代码打包到微服务应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59880079/

相关文章:

java - Custom Validation Annotation 引入了ConcurrentModificationException

java - H2内存数据库初始化数据

c# - 不同微服务中的授权检查

docker - 如何在微服务架构中使用 docker-compose 最好地处理共享服务进行本地开发?

elasticsearch - FluentBit 和 ES 的重复和缺失日志条目

javascript - 用户最小化应用程序后状态栏返回(Android Studio)

java - Unix base64 编码不匹配

java - 在 Scala 中读取大文件

Java程序不断变大

java - 在 Spring 4 JPA Hibernate 5 中使用 @NamedStoredProcedureQuery 的过程模式