验证标签路由功能
本文以consumer调用provider服务为例,在CCE场景验证标签路由功能(CCE场景部署请参考基于CCE场景)。部署图如下所示:
其中,微服务网关为Spring Cloud Netflix Zuul,provider存在2个版本,一个是版本为1.0.0(绿色背景)的provider,一个是版本为1.0.1、自定义标签为group:gray(灰色背景)的provider。
验证步骤
- 下载demo应用并打包,镜像打包文件和k8s部署文件参考部署文件,制作docker镜像请参考使用容器引擎客户端上传镜像。
- 按照部署图部署入口应用(spring-cloud-router-zuul)、consumer(spring-cloud-router-consumer)、provider(spring-cloud-router-provider v1.0.0)3个应用
- 查看应用是否已全部接入CSE的ServiceComb引擎。
参考查看微服务列表查看您的应用是否已接入CSE的ServiceComb引擎。
- 待应用接入ServiceComb引擎后,参考配置路由规则对spring-cloud-router-provider应用配置路由规则,路由规则如下:
--- - precedence: 1 match: headers: id: exact: '1' caseInsensitive: false route: - tags: group: gray weight: 100 - precedence: 2 match: headers: id: exact: '2' caseInsensitive: false route: - tags: version: 1.0.1 weight: 100
配置路由规则时,需选择以下配置:- 配置项:servicecomb.routeRule.spring-cloud-router-provider。
- 配置范围:应用级配置。
- 应用:default <空>。
- 配置格式: yaml。
- 部署标签应用gray-provider(服务名为spring-cloud-router-provider,版本为1.0.1,标签为group:gray)。
必须先配置路由规则,再部署标签应用。否则,如果在规则生效之前部署标签应用,流量就会马上请求到标签应用。
- 查看标签应用是否已接入ServiceComb引擎。
参考查看微服务列表查看服务名为spring-cloud-router-provider的服务,是否存在2个实例(v1.0.0与v1.0.1的实例)。
- 验证标签路由功能。
- 使用以下命令访问标签为group:gray的provider:
- 使用以下命令访问版本为1.0.1的provider:
- 使用以下命令访问版本为1.0.0的provider:
curl -H "id: 3" http://127.0.0.1:30000/consumer/hello/feign
或者
curl http://127.0.0.1:30000/consumer/hello/feign
执行命令时,需要把ip替换成实际宿主机的ip,把端口替换成容器的8170端口映射到宿主机的端口,访问时,会请求到入口应用(spring-cloud-router-zuul)中。
可以得出结论,当请求头为id: 1或者id: 2时,会路由到版本为1.0.1的provider,当不满足以上条件时,会访问到版本为1.0.0的provider。