操作指南

API 文档

服务路由使用方法

最近更新时间:2020-03-09 15:02:07

前提条件

要使用路由功能,用户需要在客户端配置依赖项,然后在 TSF 控制台设置路由规则。

以下视频将为您介绍 TSF 服务路由功能的使用方法:

使用服务路由

配置依赖项

Spring Cloud 应用请参考开发手册中的 服务路由。对于 Mesh 应用,如果希望使用基于自定义标签的路由,需要在代码中设置标签,关于如何设置标签参考 Mesh 开发使用指引

新建路由规则

  1. 登录 TSF 控制台
  2. 在左侧菜单中,选择【服务治理】。
  3. 在服务列表中,选择需要配置服务路由规则的服务,单击服务名称,进入服务详情页。
  4. 选择服务路由选项,单击【新建路由规则】。
  5. 新建路由规则
    1. 路由规则名称
    2. 填写规则
      • 流量来源配置:设置系统标签和自定义标签表达式。
      • 流量目的地:支持部署组和版本号两种目的地类型,确保权重加总为100。
    3. 单击【提交】。
      说明:

      最多新建10条路由规则。

启用路由规则

  1. 登录 TSF 控制台,单击左侧导航栏的【服务治理】,进入服务详情页面。
  2. 选择服务路由标签。
  3. 单击【生效状态】的切换按钮,当按钮为蓝色表明已经生效。
  4. 配置生效后,可以在列表项的下面流量分配图中查看流量分配情况,用户可以选择时间段,查看部署组上流量分配情况。
    • 24小时内的流量分配情况如下:
    • 应用路由规则后10分钟之内的流量分配曲线如下:
  5. 在流量分配图下方的流量分配表中,可以查看近五分钟内的平均每分钟请求数比例。
注意:

路由配置了流量的权重比例后,要使路由准确性达到预期,请求数至少要在1000以上;如果请求样本数不高的情况下偏差会比较大,样本数越高准确性就才越高。

容错保护

开启容错保护后,会实现兜底策略。例如服务设置了如下路由规则:

  • 10%的流量分配到 v1 版本。
  • 40%的流量分配到 v2 版本。
  • 50%的流量请求分配到 v3 版本。

假设场景:v1 版本的实例全部不可用

  • 如果不开启容错保护,仍然会有10%的请求分发到 v1 版本的实例上,此时请求会失败。
  • 如果开启容错保护,SDK 发现 v1 版本的实例不可用时,会采用 Round Robin 轮询算法将请求随机分发到所有可用实例上。

使用说明

  • 填写路由规则需要在服务提供方进行配置,例如 A 服务调用 B 服务,需要在 B 服务上配置服务路由规则。
  • 对于 Spring Cloud 服务,配置路由规则后,若配置的目标部署组无法运行,流量将按照原有默认的轮询方式分配到其他部署组上。
  • 对于 Spring Cloud 服务,当服务提示未绑定应用时,需要在服务详情页单击编辑,绑定服务,才能开始配置路由规则。服务绑定应用操作,一经绑定,不能修改
  • Spring Cloud 服务调用其他服务的场景时,要使服务路由生效,需要确保 Spring Cloud 服务使用了 SDK 并添加开启路由注解,详情请参考开发手册中 服务路由
  • 对于 Mesh 应用,配置路由规则后,若配置的目标部署组无法运行,则路由规则配置失败,请求无法发送。

其他操作

编辑路由规则

  1. 登录 TSF 控制台,单击左侧导航栏的【服务治理】,进入服务详情页面。
  2. 选择服务路由标签。
  3. 在服务路由页面已经提交的规则页面单击【编辑】。

    在编辑页面,仅支持编辑规则的详情,不支持编辑规则类型。
  4. 单击【提交】,完成路由编辑。
    说明:

    在生效状态的路由规则可以编辑,编辑之后立即生效。

删除路由规则

  1. 登录 TSF 控制台,单击左侧导航栏的【服务治理】,进入服务详情页面。
  2. 选择服务路由标签。
  3. 在服务路由页面已经提交的规则页面单击【删除】。
    说明:

    在生效状态的服务路由规则不能被删除,只能先停用,再删除。

限制说明

等于、不等于、包含、不包含属于严格匹配,正则表达式属于模糊匹配。因此当系统标签是被调方 API PATH 时,目前仅支持使用正则表达式的逻辑关系来匹配带参数的 API 请求。

  • 当标签的逻辑关系是正则表达式,值填写/echo/.*时,可以匹配带参数的请求 /echo/test123 (其中 test123 是参数)。
  • 当标签的逻辑关系是等于、不等于、包含、不包含关系,值是/echo/{param}时,不能匹配带参数的请求 /echo/test123 (其中 test123 是参数)。
目录