Spring Boot:我应该如何部署我的微服务 [关闭]
Posted
技术标签:
【中文标题】Spring Boot:我应该如何部署我的微服务 [关闭]【英文标题】:Spring boot: How should I deploy my microservices [closed] 【发布时间】:2020-12-25 23:31:23 【问题描述】:所以起初我构建了一个简单的单体应用程序并使用 docker 和 nginx 部署它(仅用于反向代理)。现在我计划将每个服务分开,因为有些服务需要大量时间和 IO 来完成它们的工作。我已经对其进行了研究,并且我知道一些我需要的组件,例如 spring cloud eureka、服务发现等。我有点困惑,因为如果我添加这些组件,我只使用 docker 和 nginx 我还需要 nginx 在上面吗它?你能给我一个我应该知道或应用于我的项目的结构示例吗?
【问题讨论】:
我认为 Nginx 代理可能对外部流量 eq 有用。客户端的浏览器 -> 您的应用程序。 Nginx 可以处理 SSL 证书。但是如果两个服务在内部进行通信,那么连接应该是直接的(没有 Nginx) 【参考方案1】:在您的第一次重构迭代中,您可以在没有服务发现的情况下进行:
为每个微服务创建一个 SpringBoot 应用 服务直接相互通信(不需要 Nginx),也没有服务发现,这意味着您硬编码(或存储在属性文件中)端点的 URL 在为最终用户提供服务的应用程序/服务(即 Web 应用程序)之前部署 NGINX一旦您验证了您的新架构(在微服务之间拆分职责),您就可以引入服务发现 (Eureka),从而不再对端点进行硬编码。
Nginx 非常轻巧,因此如果您愿意,它也可用于处理内部流量,但此时您的架构应该开始考虑流量和组件数量,以决定哪种更好。
【讨论】:
我应该将每个服务部署在不同的服务器上,还是可以使用 docker 容器将其部署在同一台服务器上。 您可以使用一台服务器运行多个 Docker 容器(每个都是一个服务),我假设您仍在开发/测试架构。在 PROD 系统上,是的,您可能希望在不同的节点上部署服务,等等……但是当您到达那里时,您需要考虑是否使用另一层(Kubernetes、Swarm)以上是关于Spring Boot:我应该如何部署我的微服务 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
AWS Beanstalk 中的 Spring Boot 微服务