【问题标题】:Is it possible to map TCP and HTTP route to same spring boot application in Pivotal CF?是否可以将 TCP 和 HTTP 路由映射到 Pivotal CF 中的同一个 Spring Boot 应用程序?
【发布时间】:2018-03-26 11:55:32
【问题描述】:

我的应用程序需要一个 TCP 端点和 HTTP 端点,在 PCF 中是否可以让两个路由都绑定到同一个应用程序?

【问题讨论】:

    标签: spring-boot cloud-foundry


    【解决方案1】:

    是否可以将 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 端口或其他一些端口。目前不支持应用容器内的多个侦听端口。您需要两个独立的应用程序。

    【讨论】:

    • 谢谢!!!这就是我要找的,HTTP 路由到一个端口和 TCP 路由到另一个端口,应用容器中的多个侦听端口。
    • 现在在 CF 中可以有一个到一个端口的 TCP 路由和一个到另一个端口的 HTTP 路由(例如,端口 8080 用于 TCP 路由,端口 8081 用于 HTTP 路由)。以下是如何做到这一点的总结:stackoverflow.com/a/63071983/4311428
    【解决方案2】:

    看起来现在可以映射到 tcp 端口,但您需要使用 cf curl 来访问原始 api。找到了这个要点,它适用于我在 gcp 上运行的 pcf 2.0。 gist

    【讨论】:

      猜你喜欢
      • 2021-02-20
      • 2018-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-13
      • 1970-01-01
      • 2018-06-09
      • 1970-01-01
      相关资源
      最近更新 更多