灰度发布控制HTTP流量

在应用的灰度发布期间,能够精确控制用户的HTTP流量,实现A/B测试等功能。

HTTP协议

当前,脉冲云只能对HTTP协议的流量进行精确控制,如果是普通TCP流量或者是UDP流量,只能按照新旧版本应用副本数量进行平均的负载均衡。

为了能够让脉冲云正确识别HTTP流量,请在应用的端口设置中,给端口协议选择HTTP。

如果某个应用存在多个端口,并且同时存在HTTP协议和TCP协议,那么HTTP协议的端口可以进行精确流量控制,其TCP端口上的流量仍然按照副本数进行负载均衡。

按百分比控制流量

拖动流量滑块,就可以将指定量的流量导入到新版本上。

流量的百分比和应用副本数的比例相互独立,比如老版本运行了10个应用副本,新版本只运行了一个副本,流量的比例设置为50%,那么新旧版本上的流量比就为 1:1,并非 1:10。您可以根据性能需要,动态控制新版本应用副本数量,以免出现少量的副本却承受大量流量,造成的不稳定。

匹配 HTTP Header

通过指定HTTP请求头的匹配规则,可以精确地将满足指定特征的用户导入到新版本上来。

如果指定了多条匹配规则,多条规则为AND关系,用户必须全部满足,才能匹配上。

匹配规则

精确匹配

请求头内容必须精确等于匹配条件。

包含

请求头内容只需包含匹配条件。

存在

判断指定Header是否存在,不在乎其内容是什么。

正则匹配

请求头内容必须满足于指定的正则表达式。正则匹配是完全匹配,比如Header内容为 123,请求条件只输入 \d 是无法匹配的,必须输入完整的正则,比如 \d{3}\d+。因为是完全匹配,所以不需要正则开始符 ^ 和 结束符 $,如果存在这两个符号,反而会匹配失败。

匹配前缀

请求头内容必须以指定的字符串开头。

匹配后缀

请求头内容必须以指定的字符串结尾。

匹配范围

请求头内容必须是数字,并且满足匹配条件给出的 最小值 到 最大值 区间,可以为负数。

反向匹配

如果勾选了反向,则匹配规则条件为否。

其实 Cookie 匹配是 Header 匹配的快捷方式,因为Header的正则匹配必须是完全匹配,而用户的Cookie一般会有多项,如果直接在Header匹配中指定 Cookie 头的匹配规则会很麻烦。

Cookie匹配是常用的方式,其各项匹配规则和普通Header匹配规则基本一致,只是不支持区间匹配。

关于 HTTP2

Header 的匹配条件的名称必须是小写,比如要匹配 User-Agent请求头,在编写匹配规则时,必须小写格式 user-agent,原因是,在脉冲云管理的集群内部,各个微服务之间的HTTP流量会被统一视作 HTTP2 流量。

就算两个微服务之间通信采用的是 HTTP/1.1 协议,也会自动将HTTP/1.1 升级为HTTP2,这样就用上了HTTP2协议的长连接、链接复用、Header压缩等功能,大大地提高了性能。

而HTTP2协议的Header字段名,统一是小写格式。

所以,不论用户请求的是HTTP/1.1 协议 还是 HTTP2 协议,不论请求头字段是大写还是小写,在填写流量控制规则时,只需小写即可。

results matching ""

    No results matching ""