将多个应用程序发布到 1 个 Cloud Foundry 环境/实例
publishing multiple apps into 1 Cloud Foudry environment /instance
我正在使用 Java 7/Spring Boot 1.3.2(带有嵌入式 TC 8)和 Cloud Foundry。当我使用 manifest.yml 将 2 个应用程序发布到 1 个 CF 节点时,我注意到了一些奇怪的事情。
这是设置:
环境:
2 Spring 已嵌入 Tomcat 7 并公开 2 组独特的 REST 服务的 Spring 启动应用程序(使用 Gradle 中的 Spring 启动插件构建 2 个可执行 jar。我在 CF 仪表板中看到这两个应用程序已成功发布。
测试:
一旦应用程序 A 发布(应用程序 B 正在发布)运行 应用程序 A 的相应 REST 客户端。这是成功的
App B 发布后,运行appB 对应的 REST 客户端。这是成功的
运行 上面的 2 个测试,我注意到前面的 2 个应用程序的 Web 服务器现在在 appA 和 appB 之间进行负载平衡。因此,如果您在 appA 和 appB 客户端之间交替,这会导致所有其他客户端调用失败。
所以问题是如果我不想要负载平衡,我应该向清单添加 "no_route" 令牌吗?
当我在 CF 中有多个 appA 或 appB 实例时,这会有什么影响?
我的manifest.yml:
---
applications:
- name: appA
host: myCloud
buildpack: java_buildpack_offline
path: ./build/libs/appA-myCloud-1.0-SNAPSHOT.jar
memory: 512M
instances: 1
- name: appB
host: bclCloud
buildpack: java_buildpack_offline
path: ./build/libs/appB-myCloud-1.0-SNAPSHOT.jar
memory: 512M
instances: 1
在您的 manifest.yml 文件中,您有 host: mycloud
和 host: bclCloud
。如果您的默认 CF 域是 mycf.example.com
,那么这些应用程序应该可以使用 URL mycloud.mycf.example.com
和 bclCloud.mycf.example.com
。 CF 将这些视为到两个不同应用程序的唯一路由,并且不会在两者之间进行负载平衡。
您可以在推送这些应用程序后 运行 cf apps
并查看输出的 urls
列以确保每个应用程序都获得唯一的路由。
I noticed that the web server that's fronting the 2 apps
您指的是什么网络服务器? CF Router 是应用程序前面唯一的 CF 组件,它不会在两个独特的应用程序之间进行负载平衡。
我正在使用 Java 7/Spring Boot 1.3.2(带有嵌入式 TC 8)和 Cloud Foundry。当我使用 manifest.yml 将 2 个应用程序发布到 1 个 CF 节点时,我注意到了一些奇怪的事情。 这是设置: 环境: 2 Spring 已嵌入 Tomcat 7 并公开 2 组独特的 REST 服务的 Spring 启动应用程序(使用 Gradle 中的 Spring 启动插件构建 2 个可执行 jar。我在 CF 仪表板中看到这两个应用程序已成功发布。
测试: 一旦应用程序 A 发布(应用程序 B 正在发布)运行 应用程序 A 的相应 REST 客户端。这是成功的
App B 发布后,运行appB 对应的 REST 客户端。这是成功的
运行 上面的 2 个测试,我注意到前面的 2 个应用程序的 Web 服务器现在在 appA 和 appB 之间进行负载平衡。因此,如果您在 appA 和 appB 客户端之间交替,这会导致所有其他客户端调用失败。
所以问题是如果我不想要负载平衡,我应该向清单添加 "no_route" 令牌吗?
当我在 CF 中有多个 appA 或 appB 实例时,这会有什么影响?
我的manifest.yml:
---
applications:
- name: appA
host: myCloud
buildpack: java_buildpack_offline
path: ./build/libs/appA-myCloud-1.0-SNAPSHOT.jar
memory: 512M
instances: 1
- name: appB
host: bclCloud
buildpack: java_buildpack_offline
path: ./build/libs/appB-myCloud-1.0-SNAPSHOT.jar
memory: 512M
instances: 1
在您的 manifest.yml 文件中,您有 host: mycloud
和 host: bclCloud
。如果您的默认 CF 域是 mycf.example.com
,那么这些应用程序应该可以使用 URL mycloud.mycf.example.com
和 bclCloud.mycf.example.com
。 CF 将这些视为到两个不同应用程序的唯一路由,并且不会在两者之间进行负载平衡。
您可以在推送这些应用程序后 运行 cf apps
并查看输出的 urls
列以确保每个应用程序都获得唯一的路由。
I noticed that the web server that's fronting the 2 apps
您指的是什么网络服务器? CF Router 是应用程序前面唯一的 CF 组件,它不会在两个独特的应用程序之间进行负载平衡。