更新时间:2024-08-16 GMT+08:00
分享

验证标签路由功能

本文以consumer调用provider服务为例,在CCE场景验证标签路由功能(CCE场景部署请参考基于CCE场景)。部署图如下所示:

其中,微服务网关为Spring Cloud Netflix Zuul,provider存在2个版本,一个是版本为1.0.0(绿色背景)的provider,一个是版本为1.0.1、自定义标签为group:gray(灰色背景)的provider。

验证步骤

  1. 下载demo应用并打包,镜像打包文件和k8s部署文件参考部署文件,制作docker镜像请参考使用容器引擎客户端上传镜像
  2. 按照部署图部署入口应用(spring-cloud-router-zuul)、consumer(spring-cloud-router-consumer)、provider(spring-cloud-router-provider v1.0.0)3个应用
  3. 查看应用是否已全部接入CSE的ServiceComb引擎。

    参考查看微服务列表查看您的应用是否已接入CSE的ServiceComb引擎。

  4. 待应用接入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。

  5. 部署标签应用gray-provider(服务名为spring-cloud-router-provider,版本为1.0.1,标签为group:gray)。

    必须先配置路由规则,再部署标签应用。否则,如果在规则生效之前部署标签应用,流量就会马上请求到标签应用。

  6. 查看标签应用是否已接入ServiceComb引擎。

    参考查看微服务列表查看服务名为spring-cloud-router-provider的服务,是否存在2个实例(v1.0.0与v1.0.1的实例)。

  7. 验证标签路由功能。

    • 使用以下命令访问标签为group:gray的provider:

      curl -H "id: 1" http://127.0.0.1:30000/consumer/hello/feign

    • 使用以下命令访问版本为1.0.1的provider:

      curl -H "id: 2" http://127.0.0.1:30000/consumer/hello/feign

    • 使用以下命令访问版本为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。

相关文档