【发布时间】:2018-03-26 11:55:32
【问题描述】:
我的应用程序需要一个 TCP 端点和 HTTP 端点,在 PCF 中是否可以让两个路由都绑定到同一个应用程序?
【问题讨论】:
我的应用程序需要一个 TCP 端点和 HTTP 端点,在 PCF 中是否可以让两个路由都绑定到同一个应用程序?
【问题讨论】:
是否可以将 TCP 和 HTTP 路由映射到 Pivotal CF 中的同一个 Spring Boot 应用程序?
我做了一个快速测试,它对我有用。
$ cf app php-info-cf
Showing health and status for app php-info-cf in org cf-support / space dmikusa as dmikusa@gopivotal.com...
name: php-info-cf
requested state: started
instances: 1/1
usage: 128M x 1 instances
routes: php-info-cf.cfapps.io, cf-tcpapps.io:3351
last uploaded: Mon 26 Mar 09:18:59 EDT 2018
stack: cflinuxfs2
buildpack: https://github.com/dmikusa-pivotal/php-buildpack#v4.3.51_bonus
state since cpu memory disk details
#0 running 2018-03-26T13:19:49Z 0.3% 23.8M of 128M 204M of 1G
请注意列出 HTTP 和 TCP 路由的“路由:”行。
也就是说,我不确定它会完全按照您的意愿行事。在上面的示例中,两个路由最终都被定向到应用程序容器中的同一个端口。因此,对php-info.cfapps.io 的 HTTP 请求会发送到 GoRouter,GoRouter 会将其发送到正在侦听容器内端口 8080 的应用程序实例。同样,如果您向cf-tcpapps.io:3351 发送一个 HTTP 请求,它将被路由到同一个应用程序实例,该应用程序实例也在容器内的端口 8080 上进行侦听。不同之处在于第二个请求不会通过 GoRouter。不过,两者最终都会让您的应用在端口 8080 上进行侦听。
目前您不能做的是让您的 HTTP 路由转到容器内的 8080 端口,而让 TCP 路由转到 8081 端口或其他一些端口。目前不支持应用容器内的多个侦听端口。您需要两个独立的应用程序。
【讨论】:
看起来现在可以映射到 tcp 端口,但您需要使用 cf curl 来访问原始 api。找到了这个要点,它适用于我在 gcp 上运行的 pcf 2.0。 gist
【讨论】: