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的新版本。