全链路流量控制提供了灵活的灰度发布方式,同时也有一些限制以及约定。

如果一个应用实例分组同时属于多个流量控制环境,会造成流量控制冲突。所以,在全链路流量控制中,一个应用实例分组只能属于一个灰度环境。

说明 单个应用流量控制里对应用分组启用HSF流量规则后,实际上也会创建一个流量控制环境来容纳这个应用分组。

流量控制属性唯一

当一个流量已经被标记属于某个流量控制规则以后,不会因为符合其它灰度规则的条件被覆盖标记成为其它流量控制规则。

流量控制规则生效优先级

同一个应用可能会作为多个流量控制环境的入口应用,可能会有流量同时符合多个灰度规则的情况。根据上面流量控制属性唯一的限制,需要设置多个灰度规则的生效优先策略。目前的约定是按规则的创建、变更时间来判定,后创建或者后变更的灰度规则优先。

单应用流量控制与全链路流量控制的关联限制

一个应用可能同时使用单应用流量控制和全链路流量控制。单应用流量控制中设置HSF规则相当于创建了一个流量控制规则,而同一个应用分组不能属于两个流量控制环境。因此当一个应用分组已经加入到某个流量控制环境中,就不允许再在单应用流量控制中单独设置HSF规则。同样,如果一个应用分组已经设置了自己的HSF规则,就不允许加入另外一个流量控制环境。

单应用流量控制中,入口应用同一入口端点规则唯一

单应用流量控制中,对同一个应用的HTTP规则和HSF规则有唯一性限制,实际上一个“入口端点”只允许一个规则定义。关于入口端点的定义:

  • 对于HTTP协议,一个端点指的是一个应用,一个应用只有一个分组能设置。
  • 对于HSF协议,一个端点指的是一个应用接口里的一个方法。

在单应用流量控制里,一个应用不能制定多个HTTP规则,一个应用的一个接口方法,不能出现在多个HSF规则中。