【问题标题】:Spring boot: How should I deploy my microservices [closed]Spring Boot:我应该如何部署我的微服务 [关闭]
【发布时间】:2020-12-25 23:31:23
【问题描述】:

所以起初我构建了一个简单的单体应用程序并使用 docker 和 nginx 部署它(仅用于反向代理)。现在我计划将每个服务分开,因为有些服务需要大量时间和 IO 来完成它们的工作。我已经对其进行了研究,并且我知道一些我需要的组件,例如 spring cloud eureka、服务发现等。我有点困惑,因为如果我添加这些组件,我只使用 docker 和 nginx 我还需要 nginx 在上面吗它?你能给我一个我应该知道或应用于我的项目的结构示例吗?

【问题讨论】:

  • 我认为 Nginx 代理可能对外部流量 eq 有用。客户端的浏览器 -> 您的应用程序。 Nginx 可以处理 SSL 证书。但是如果两个服务在内部进行通信,那么连接应该是直接的(没有 Nginx)

标签: spring-boot docker nginx microservices infrastructure


【解决方案1】:

在您的第一次重构迭代中,您可以在没有服务发现的情况下进行:

  • 为每个微服务创建一个 SpringBoot 应用
  • 服务直接相互通信(不需要 Nginx),也没有服务发现,这意味着您硬编码(或存储在属性文件中)端点的 URL
  • 在为最终用户提供服务的应用程序/服务(即 Web 应用程序)之前部署 NGINX

一旦您验证了您的新架构(在微服务之间拆分职责),您就可以引入服务发现 (Eureka),从而不再对端点进行硬编码。

Nginx 非常轻巧,因此如果您愿意,它也可用于处理内部流量,但此时您的架构应该开始考虑流量和组件数量,以决定哪种更好。

【讨论】:

  • 我应该将每个服务部署在不同的服务器上,还是可以使用 docker 容器将其部署在同一台服务器上。
  • 您可以使用一台服务器运行多个 Docker 容器(每个都是一个服务),我假设您仍在开发/测试架构。在 PROD 系统上,是的,您可能希望在不同的节点上部署服务,等等……但是当您到达那里时,您需要考虑是否使用另一层(Kubernetes、Swarm)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-28
  • 2018-06-17
  • 2019-10-23
  • 2017-10-19
  • 2020-06-15
  • 2018-05-24
  • 1970-01-01
相关资源
最近更新 更多