gpt4 book ai didi

spring-boot - 部署Spring boot项目时PCF内部是如何工作的

转载 作者:行者123 更新时间:2023-11-28 22:36:28 25 4
gpt4 key购买 nike

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

最佳答案

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

How PCF works internally when deploying Spring boot project Will PCF run the Tomcat embedded in Spring boot jar or it runs its own tomcat.

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

在暂存期间,Java 构建包运行。它查看所有被推送的文件并尝试确定如何处理它们。它知道如何处理几种不同类型的应用程序 [1],包括标准 WAR 文件和 Spring Boot 应用程序。构建包将检查您的应用,以查看它是否是按顺序 [2] 支持的类型之一,并将选择第一个匹配项。

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

此时暂存已完成,您拥有所谓的“液滴”。如果您对暂存工作流程有任何其他问题,请阅读此处了解更多详细信息 [3]。

此时,应用程序将启动。该平台采用创建的 Droplet 并执行构建包指定的命令以启动应用程序 [4]。如果一切顺利,您的应用程序将在 CF 上启动并运行。

In PCF we never mention the port number.

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

对于 Spring Boot 应用程序,您可以查看启动命令以了解它是如何执行此操作的。对于 Tomcat,它发生在由 Java buildpack [5] 生成的 server.xml 中。

In the classic approach, we start 3 Tomcat instances in different port number and have apache server before that. Does PCF work the same way.

是也不是。您运行的每个应用程序都可以有多个实例。如果您将您的应用程序扩展为具有三个实例,那大致就像在您的经典方法中拥有 3 个 Tomcat 实例。

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

这是 CF 新手常犯的典型错误。他们尝试复制经典架构,并在不必要时将反向代理塞进他们的应用程序中。这是CF的好处之一。它以可扩展的方式处理将流量路由到您的应用,让您有更多时间专注于您的应用。

关于spring-boot - 部署Spring boot项目时PCF内部是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55699991/

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