【发布时间】:2016-01-20 18:18:48
【问题描述】:
当我想部署同一个微服务的多个版本时,我是否应该为每个服务公开不同的端点。例如,如果我公开 CustomerService ,我应该公开 http://host:port/v1/CustomerService 、 http://host:port/v2/CustomerService 等吗?或者有没有办法在 Cloud Foundry 中根据消费者公开单个端点和路由?
【问题讨论】:
当我想部署同一个微服务的多个版本时,我是否应该为每个服务公开不同的端点。例如,如果我公开 CustomerService ,我应该公开 http://host:port/v1/CustomerService 、 http://host:port/v2/CustomerService 等吗?或者有没有办法在 Cloud Foundry 中根据消费者公开单个端点和路由?
【问题讨论】:
您可以create 和map 包含路径的一部分的路由,例如v2。例如,您可能有两个应用程序,MyService 和 MyServiceV2,那么您可以这样做:
cf create-route SPACE_NAME SOME_APP_DOMAIN --hostname myservice
cf create-route SPACE_NAME SOME_APP_DOMAIN --hostname myservice --path v2
cf map-route MyService SOME_APP_DOMAIN --hostname myservice
cf map-route MyServiceV2 SOME_APP_DOMAIN --hostname myservice --path v2
然后,此微服务的任何客户端都可以与 myservice.SOME_APP_DOMAIN/some-resource 或 myservice.SOME_APP_DOMAIN/v2/some-resource 之类的东西通信,具体取决于这些是旧客户端与旧服务通信,还是最新客户端与新服务通信。
【讨论】: