开启了公司的工作项目。而那里 - 文件pom.xml
谎言。一是项目的根。还有一些在子文件夹中。
问题:我是否正确理解微服务架构意味着每个服务 -> 一个文件夹 -> 至少存在一个pom.xml
. ? 如果不是,那么在一个 spring 项目中存在多个 pom.xml 原则上意味着什么?
开启了公司的工作项目。而那里 - 文件pom.xml
谎言。一是项目的根。还有一些在子文件夹中。
问题:我是否正确理解微服务架构意味着每个服务 -> 一个文件夹 -> 至少存在一个pom.xml
. ? 如果不是,那么在一个 spring 项目中存在多个 pom.xml 原则上意味着什么?
如果项目中有多个 pom.xml 文件,那么我们只能毫不含糊的说项目分为几个模块。
这些模块可以是:
如果不看它们是什么以及它们如何相互作用,就不可能明确地说出来。
微服务的重要特征之一是其独立演进的可能性。也就是说,在不影响其他服务的情况下对其进行更改的能力。这意味着微服务有一定程度的隔离,如果微服务在物理上分离,无论是在工作过程中还是在代码中,都更容易实现。这通常意味着每个服务都被分离到至少一个单独的 maven 模块中,并且通常被分离到一个单独的源代码控制存储库中。
但是 maven 非常灵活,允许您从一个模块创建多个工作应用程序(即有一个 pom.xml,但仍然有多个服务)。这消除了有助于隔离服务的人为障碍,有些人甚至可能认为它使这样的架构成为非微服务。
这里需要注意的是,微服务架构是一个模糊的概念。有一系列的可能性。一方面是单体架构,另一方面是具有创建微服务的所有最佳实践的架构。但也有很多中间形式。在这个范围内,“微服务已经开始”是一个值得商榷的问题。
好吧,想想 pom 文件如何影响架构。你认为如果他一个人,那么架构就不能是微服务吗?改写问题。为了能够回答。
架构可能是微服务,每个服务可能不知道任何人或任何事物的存在。因此,即使是作为应用程序一部分的最小服务,也可能根本没有 maven 所需的 pom xml。
Apache Maven 是一个框架,用于根据 POM 语言文件中的结构描述自动组装项目。几个带有 pom 文件的小包可以组装成一个整体。请参阅使用 core、in、out 等包的示例。
更新。
你在理解建筑方面有一个主要障碍。
单体应用程序是通过单个. -因此,如果您通过多次部署来部署您的应用程序,这不是一个整体。
现在让我们谈谈pom和其他细节。
(Martin R. M29 清洁架构。软件开发的艺术。-圣彼得堡:彼得,2018 年。- 352 p.:生病。-(程序员图书馆系列))