首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >部署Spring boot项目时,PCF如何在内部工作

部署Spring boot项目时,PCF如何在内部工作
EN

Stack Overflow用户
提问于 2019-04-16 11:08:36
回答 2查看 2.2K关注 0票数 0

PCF将运行嵌入在Spring boot jar中的tomcat,还是它运行自己的Tomcat。在PCF中,我们从不提及端口号。在经典的方法中,我们在不同的端口号上启动3个Tomcat实例,并在此之前拥有apache服务器。PCF也是这样工作的吗?

EN

回答 2

Stack Overflow用户

发布于 2019-04-16 20:59:16

这是一个相当宽泛的问题,所以我将用一个相当宽泛的回答来回答,但如果你倾向于挖掘更多细节,请链接到你可以找到更多细节的地方。

在内部如何工作当部署Spring boot项目时,PCF将运行嵌入到Spring boot jar中的tomcat,或者它运行自己的Tomcat。

当您运行cf push -p my/cool/file.jar (甚至是file.war)时,CF cli会从该归档文件中提取所有内容,并将其推送到cf。CF存储您的应用程序文件,然后将您的应用程序暂存。

在试运行期间,Java构建包将运行。它会查看所有推送的文件,并尝试确定如何处理这些文件。它知道如何处理几种不同类型的应用程序1,包括标准WAR文件和Spring Boot应用程序。build pack将检查你的应用程序,看看它是否是order 2中支持的类型之一,并选择第一个匹配类型。

选择应用程序类型后,它会运行并安装运行应用程序所需的内容。对于Spring Boot应用程序,这基本上就是JVM。对于WAR文件,它安装Tomcat &一个JVM。此外,它还写出了CF启动应用程序所需的配置和启动命令。

在这一点上,阶段是完成的,你有了所谓的“液滴”。如果您对试运行工作流程有任何其他问题,请阅读此处以了解更多详细信息3。

此时,应用程序将启动。该平台获取创建的快捷批处理程序,并执行构建包指定的命令来启动应用程序4。如果一切顺利,您的应用程序将在CF上启动并运行。

中,我们从不提及端口号。

对,是这样。平台将告诉您应用程序应该侦听的端口。对于Java应用程序,您无需执行任何操作。Java构建包将处理配置Spring Boot或Tomcat以在正确的端口上启动和侦听。

对于Spring Boot应用程序,您可以查看start up命令来了解它是如何做到这一点的。对于Tomcat,它发生在由Java buildpack5生成的server.xml中。

在经典的方法中,我们在不同的端口号上启动3个Tomcat实例,并在此之前拥有apache服务器。PCF也是这样工作的吗?

是也不是。您运行的每个应用程序都可以有多个实例。如果您将您的应用程序扩展到有三个实例,这将大致相当于在您的经典方法中有三个Tomcat实例。

主要区别在于前面没有Apache Web Server。在Cloud Foundry上,这是不必要的,因为它有自己的负载均衡器,称为Gorouter 6,它处理代理到您的应用程序的流量,并在可用应用程序实例之间进行负载平衡。

这是CF新手犯的一个经典错误。他们试图复制经典的架构,并在不必要的时候在他们的应用程序中硬塞一个反向代理。这是CF的优点之一。它以一种可扩展的方式将流量路由到您的应用程序,让您可以更多地专注于您的应用程序。

标准容器1请参见“ Containers -> https://github.com/cloudfoundry/java-buildpack#additional-documentation

票数 3
EN

Stack Overflow用户

发布于 2019-11-26 04:30:11

不是的。简单的答案是,您的应用程序jar的每个实例都运行在PCF中自己的容器中。因此,使用相同的端口号不会发生冲突。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55699991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档