标签说明
TSF 引入标签概念以区分不同的请求来源,TSF 标签包括系统标签和业务自定义标签。
系统标签
每一个 TSF 上运行的服务都已经被预先设置好了某些标签,如发起请求的服务消费方所在的部署组、IP、服务发起方的版本号等。当前支持的系统标签有:
上游服务名
命名空间+上游服务名:该标签仅支持1.18.0(包含1.18.0)版本之后的 SDK,针对全局命名空间中的微服务,或微服务被全局命名空间中的网关访问的场景下生效。
上游应用
上游应用版本号
上游部署组
上游IP
当前应用版本号
当前部署组
当前服务 API PATH
请求 HTTP METHOD
业务自定义标签
在实际的使用中,如果系统自带标签不能保证用户使用的场景,用户可以自定义标签内容。对于 Spring Cloud 应用,TSF 提供了用户配置自定义标签的 SDK,参见开发手册 参数传递;对于 Mesh 应用,用户需要在 header 中设置标签,参见 Mesh 开发使用指引-设置自定义标签。
注意
这里的标签和腾讯云的标签产品不是同一个概念。腾讯云的标签产品是一种划分资源的方式,而 TSF 服务治理中的标签是为了区分不同的请求来源。
标签表达式
用户在控制台创建服务治理规则时,可以选择通过设置标签表达式区分请求来源。多个标签表达式之间是逻辑与(AND)的关系。例如两条标签表达式分别是:
系统标签主调服务名等于 consumer-demo
自定义标签 userid 等于123456
只有当一条请求是 consumer-demo 发出,且带有 userid 是123456的自定义标签时才满足上面2个标签表达式。
一条标签表达式中,逻辑关系与值的个数对应如下:
逻辑关系 | 值个数 |
包含(IN) | 多个 |
不包含( NOT IN) | 多个 |
等于(==) | 一个 |
不等于(!=) | 一个 |
正则表达式(regex) | 一个 |