Cloud Foundry - 多版本服务
Cloud Foundry - Multiple versions of services
当我想部署同一个微服务的多个版本时,我是否应该为每个服务公开一个不同的端点。例如,如果我公开 CustomerService ,我应该公开 http://host:port/v1/CustomerService , http://host:port/v2/CustomerService 等吗?或者有没有办法在 Cloud Foundry 中公开基于消费者的单个端点和路由?
您可以 create and 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
之类的内容对话,具体取决于这些是旧客户端与旧服务对话,还是 up-to-date 客户端与旧服务对话较新的。
当我想部署同一个微服务的多个版本时,我是否应该为每个服务公开一个不同的端点。例如,如果我公开 CustomerService ,我应该公开 http://host:port/v1/CustomerService , http://host:port/v2/CustomerService 等吗?或者有没有办法在 Cloud Foundry 中公开基于消费者的单个端点和路由?
您可以 create and 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
之类的内容对话,具体取决于这些是旧客户端与旧服务对话,还是 up-to-date 客户端与旧服务对话较新的。