gpt4 book ai didi

java - 多模块maven VS 微服务架构

转载 作者:行者123 更新时间:2023-12-02 00:59:01 24 4
gpt4 key购买 nike

必须为我的项目创建一个项目模板,所以我很困惑在多模块 Maven 或微服务(eureka)之间使用什么。

我有几个疑问/问题,如果有人能帮助我,那就太好了。

  1. 何时使用多模块 Maven,何时使用微服务?
  2. 假设我们有可供任何服务使用的实用程序文件,因此它将是一个不同的 Spring Boot 应用程序,或者在每个 Spring 项目中我们必须保留该实用程序文件。
  3. 如果我们有 3 个微服务,我不想授予对其中一项服务的访问权限,那么我们如何实现这一点,就像对于多模块 Maven 一样,我们可以将其从父 pom.xml 中注释掉,但是我们该怎么做微服务中的内容。
  4. 我们如何在除restTemplate 之外的两个服务之间进行通信。

最佳答案

Martin Fowler 的一些建议:https://martinfowler.com/bliki/MonolithFirst.html基本上,它说首先构建一个整体,只有当您拥有一些工作功能后,才决定是否以及如何将其拆分为多个微服务。

恕我直言,微服务的最大优势是独立的可部署性:您可以开发、质量保证和部署一个微服务,而无需担心其他微服务。但只有当您与多个团队合作时,这一优势才会显现出来。

您提到的有关微服务的一些问题:

  • 通常,微服务之间有两种访问模式:发送命令和监听事件。您无法使用 REST API 来同时完成这两项工作,迟早您还需要一些消息传递基础设施。或者使用 GraphQL。
  • 微服务之间的访问需要受到保护。对于 REST API 和消息传递,您通常会为允许使用它的每个微服务创建一个 API key 。
  • 切勿在微服务之间共享实用程序或文件,否则会破坏独立的可部署性。如果确实需要共享资源,请创建一个专用微服务,通过 REST API 公开共享资源或实用功能。

但首先:创建一个整体并发现是否以及在哪里需要微服务边界。

希望这有帮助。

关于java - 多模块maven VS 微服务架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60945116/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com