猜你不知道Spring Boot的几种部署方式
在直接设置中,我们直接在localhost上运行Nginx Web服务器和Spring Boot应用程序(当然在不同的端口上)。我们让Ngnix代理REST请求到Spring Boot应用程序:
在此基础上对将来的请求http://localhost/app1/将被定向到/http://localhost:8080/,和将来的请求http://localhost/app2/将被引导到/http://localhost:9000/。 负载均衡 如果您正在运行Spring Boot应用程序的多个实例,则可以启用Nginx以应用负载平衡。例如,如果我们在端口8080,8081和8082上运行3个app1实例。我们可以在这些服务器之间进行负载平衡,如下所示: 打开文件/etc/ngnix/sites-available/default并在文件顶部添加以下块(在服务器块之前):
修改app1 的proxy_pass参数,如下所示:
基于此请求http://localhost/app1/将被发送到/http://localhost:8080/,/http://localhost:8081/或/http://localhost:8082/。 部署在NGINX Web服务器后面 - 容器化设置 在容器化设置中,我们将Nginx Web服务器和所有Spring Boot应用程序部署在单独的Docker容器上。我们让Nginx(在自己的容器中运行)向Spring Boot应用程序容器代理REST请求。 我们首先将所有Spring Boot应用程序打包在(胖)jar文件中(之前已经解释过)。此时,请注意通过向application.properties(或application.yml)文件添加以下行来为每个Spring Boot应用程序设置单个服务器端口和根上下文路径:
然后我们将生成的jar包部署在单独的Docker容器中(之前也有解释)。 例如,我们部署了四个Spring Boot应用程序; “分析服务”应用程序的单个实例和“搜索服务”应用程序的三个实例。搜索服务应用程序的三个实例将由Nginx负载平衡。 我们基于默认配置创建Nginx配置文件nginx.conf。我们为每个服务添加负载平衡和代理信息,如下所示:
请求到http://localhost/search-service/将被引导到一个/http://search-service-1:8080/search-service/,/http://search-service-2:8081/search-service/和/http://search-service-3:8082/search-service/,和请求http://localhost/analysis-service/将被引导到/http://analysis-service:8083/analysis-service/。 创建配置文件(nginx.conf)后,我们将在Docker容器中部署Nginx Web服务器。为此,我们创建一个Dockerfile,如下所示:
我们为Nginx Web服务器构建一个Docker镜像,如下所示:
(编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |