端口绑定 - 12因子应用程序

时间:2017-09-27 02:34:26

标签: java spring-boot cloudfoundry pivotal-cloud-foundry 12factor

每当我部署一个spring boot应用程序时,它都嵌入了tomcat容器。它依赖于容器可用。这是否意味着它们不符合12因素应用程序,取决于运行时注入Web服务器?

TCP路由对非http服务意味着什么?

  

端口绑定

     

通过端口绑定导出服务。 12因素的应用程序是   完全独立,不依赖于运行时注入   Web服务器进入执行环境以创建面向Web的   服务。

     

对于Pivotal Cloud Foundry,非HTTP服务需要TCP路由   为了重新塑造。

1 个答案:

答案 0 :(得分:2)

当您在本地运行时,它是一个Spring启动应用程序,它使用default个人资料运行。因此,Spring将在运行时利用您的端口和其他设置。

当您推送到云时,春季启动应用程序将使用cloud配置文件运行。在cloud配置文件中,端口设置由云指定,您提供的设置将被忽略。

在PCF中,Diego小区托管所有应用程序实例。迭戈小区有自己的CIDR块用于托管的应用程序。因此,您的应用实例将获得该范围内的IP。并且您无法通过其IP访问该应用程序。

Diego cell vm虽然拥有来自其运行的网络的CIDR范围的IP。 Diego cell还使用NAT-ing将app ip映射到Diego cell vm上的端口。这就是流量路由到您的应用的方式。

正如您所看到的,PCF中的Diego单元不能依赖您提供的端口。相反,它将在可能的地方运行应用程序,并将NAT运行到可用端口。

看看Diego Reference Architecture

关于您的第二个问题,Cloud Foundry中的Go-Routers将请求路由到应用实例。默认情况下,仅在Go-Routers上启用http / https流量。您可以在Go-Routers上启用TCP路由。我相信,这是在PCF 1.9中增加的。 这是documentation