4.1.2 流量拆分与导向

Istio提供了两种流量路由管理方式:基于比例的流量拆分、基于请求内容的流量导向。

1.基于比例的流量拆分

Istio根据输入的流量比例来确定流量分发的比重,范围限制为[0,100]。

如图4-2所示,当服务B提供了新版本时,可以通过指定一定的比例将从服务A到服务B调用的流量切换到新版本。例如,指定10%的流量权重到新版本之后,服务流量就会按照权重比例以对应的概率分发当前版本,即10%的流量走新版本,90%的流量走当前版本。

图4-2 基于比例的流量拆分

2.基于请求内容的流量导向

除了指定比例进行流量拆分之外,Istio也提供了基于请求内容的流量拆分,包括以下几种方式:

·基于浏览器的分发:选择允许访问的浏览器。

·基于操作系统的分发:选择允许访问的操作系统。

·基于Cookie的分发:使用正则表达式来匹配Cookie内容。

·基于HTTP请求头(header)的分发:使用正则表达式来匹配自定义的请求头。

·图4-3是基于HTTP请求头的分发示例,其中android应用走服务B的新版本。