Intellij + Bitbucket 中的微服务 + 项目

Microservices + Project in Intellij + Bitbucket

想请教一下Intellij中项目的结构。我想创建我的第一个基于微服务架构的 Web 应用程序。

我希望在 Intellij 中将一个项目中的所有微服务视为子模块。我的问题是我是否应该将每个 mocriservice 提交到 bitbucket 中的单独存储库或将所有微服务提交到一个存储库?最佳做法是什么?

谢谢, 马修

常见做法:

  • 在 intellij-idea 中将微服务单独作为单独的项目,而不是单独的模块
  • 每个微服务项目的独立存储库

您需要在项目级别进行这种程度的隔离,因为您需要为每个微服务创建 CI/CD 管道,这是微服务架构的另一个特征。如果将这些服务合并到一个胖项目中,将很难为不同的微服务提供不同版本的库依赖(即使这些服务在部署时被 Docker 容器分隔)。每个在不同微服务上工作的团队不应该担心另一个微服务的项目依赖性。尽管每个微服务都是大型复合应用程序的一部分,但从开发人员的角度来看,将每个服务视为独立的代码单元非常重要。这使得在不中断应用程序的情况下部署更新版本的服务成为可能。 CI/CD 管道应设计为利用独立版本控制。

为什么每个微服务需要不同的项目,原因太多,超出了一个答案的讨论范围,但是现在,选择不同的项目,一旦进入微服务领域,您就会发现。