配置流量策略
- 登录应用服务网格控制台,单击服务网格的名称,进入网格详情页面。
- 在左侧导航栏选择“服务管理”,在列表右上方选择服务所在命名空间。
- 选择一个服务,单击操作列的“流量治理”,在右侧页面进行重试、超时、连接池、熔断、负载均衡、HTTP头域、故障注入策略的配置。
重试
服务访问失败自动重试,提高总体访问成功率和质量。
选择“重试”页签,单击“立即配置”,在弹出对话框中,根据实际需求配置如下参数:
表1 重试参数说明 参数名称
参数说明
取值范围
重试次数
单个请求允许的重试次数,间隔默认为25ms,实际的重试次数也取决于配置的超时时间和重试超时时间
1-
重试超时时间(s)
单个请求的超时时间,包括初次请求和重试请求,默认值与配置的超时时间相同
0.001-2592000
重试条件
配置重试的条件,详情请参照retry policies和gRPC retry policies。
-
超时
服务访问超时自动处理,快速失败,避免资源锁定和请求卡顿。
选择“超时”页签,单击“立即配置”,在弹出对话框中,根据实际需求配置如下参数:
表2 超时参数说明 参数名称
参数说明
取值范围
超时时间(s)
HTTP请求超时时间
0.001-2592000
连接池
目的是断开超过阈值的连接和请求,保护目标服务。连接池设置应用于上游服务的每个实例,可以应用在TCP级别和HTTP级别。更多信息请参照Circuit breaker。
选择“连接池”页签,单击“立即配置”,在弹出对话框中,根据实际需求配置如下参数:
表3 TCP设置参数说明 参数名称
参数说明
取值范围
最大连接数
到目标服务的HTTP/TCP连接的最大数量,默认232-1
1-
最大无响应次数
在确定连接已失效前,要发送的保活探测的最大数量。默认使用操作系统级别配置(除非被覆盖,Linux默认为9)
1-
健康检查间隔(s)
保活探测之间的持续时间。默认使用操作系统级别配置(除非被覆盖,Linux默认为75秒)
0.001-2592000
连接超时时间(s)
TCP连接超时时间,默认值为10秒
0.001-2592000
最短空闲时间(s)
在开始发送保活探测前,连接需要处于空闲状态的持续时间。默认是使用操作系统级别配置(除非被覆盖,Linux默认为7200秒,即2小时)
0.001-2592000
表4 HTTP设置参数说明 参数名称
参数说明
取值范围
最大请求数
转发到单个服务实例的最大请求数,默认232-1
1-
最大等待请求数
转发到目标服务的最大待处理的HTTP请求数,默认232-1
1-
连接最大空闲时间(s)
上游服务连接的空闲超时。如果一定时间内没有活跃的请求,达到空闲时间后,连接将关闭,如果未设置,默认值为1小时
0.001-2592000
最大重试次数
一定时间内,服务所有实例的最大重试次数,默认为232-1
1-
每连接最大请求数
每个连接到后端的最大请求数。将此参数设置为1将禁用保活,默认0,表示“无限”,最多229
1-536870912
熔断
自动隔离不健康的实例,提高服务整体访问成功率。
熔断器跟踪服务实例的访问状态,通过跟踪一段时间内服务实例的访问请求判定其健康状况,将不健康的实例从连接池中隔离,从而提高服务总体的访问成功率,适用于HTTP和TCP服务。对于HTTP服务,连续返回5xx错误的实例认定为不健康。对于TCP服务,连接超时或者连接失败的实例认定为不健康。详情请参照Outlier detection。
选择“熔断”页签,单击“立即配置”,在弹出对话框中,根据实际需求配置如下参数:
表5 熔断参数说明 参数名称
参数说明
取值范围
连接错误数
检查周期内连续错误的次数,连续错误次数超过该阈值将会被隔离,此功能默认为5
1-
基础隔离时间(s)
满足熔断条件的实例被隔离的基础隔离时间。服务实例实际隔离时间等于 基础隔离时间 x 隔离次数,必须>=0.001s,默认值为30秒
0.001-2592000
检查周期(s)
实例异常检查的间隔,根据在该时段内异常次数是否超过阈值决定是否触发隔离,必须>=0.001s,默认值为10秒
0.001-2592000
最大隔离实例比例(%)
被隔离的服务实例最大百分比,默认为10%
1-100
负载均衡
为目标服务配置满足业务要求的负载均衡策略,控制选择后端服务实例。
选择“负载均衡”页签,单击“立即配置”,在弹出对话框中,根据实际需求选择负载均衡算法。
- 轮询调度:网格使用的默认负载均衡算法,实例池中的每个实例轮流获得请求。
- 最少连接:随机选取两个健康的实例,再从所选取的两个实例中选择一个连接数较少的实例。
- 随机调度:从所有健康的实例中,随机选取一个。
- 一致性哈希:包含四种类型,如表6所述。
HTTP头域
灵活增加、修改和删除指定HTTP头域,非侵入方式管理请求内容。
选择“HTTP头域”页签,单击“立即配置”,在弹出对话框中,根据实际需求配置如下参数:
表7 将HTTP请求转发到目标服务之前,对Headers的操作 参数名称
参数说明
添加请求的Headers
添加新的请求Headers参数,需要设置key和value。还可以单击图标,添加更多同类型参数。
修改请求的Headers
修改已有的请求Headers参数,需要设置key和value。还可以单击图标,添加更多同类型参数。
移除请求的Headers
删除已有的请求Headers参数,需要设置key。还可以单击图标,添加更多同类型参数。
表8 将HTTP响应回复给客户端前,对Headers的操作 参数名称
参数说明
添加响应的Headers
添加新的响应Headers参数,需要设置key和value。还可以单击图标,添加更多同类型参数。
修改响应的Headers
修改已有的响应Headers参数,需要设置key和value。还可以单击图标,添加更多同类型参数。
移除响应的Headers
删除已有的响应Headers参数,需要设置key。还可以单击图标,添加更多同类型参数。
故障注入
故障注入是一种有效的测试方法,它能够将错误引入系统,以确保系统能够承受错误的并从错误中恢复。
选择“故障注入”页签,单击“立即配置”,在弹出对话框中,根据实际需求配置如下参数:
表9 故障注入参数说明 参数名称
参数说明
取值范围
故障类型
包括延时故障和中断故障。
- 延时故障:对通往组件的请求有延迟。
- 中断故障:会中断该组件的服务并返回预设状态码。
延时故障、中断故障
延时(s)
故障类型选择“延时故障”时需要设置。
在转发请求之前添加的固定延迟。
0.001-2592000
HTTP状态码
故障类型选择“中断故障”时需要设置。
终止故障时返回的HTTP状态码,默认返回500。
200-599
故障百分比(%)
注入延时或中断故障的请求百分比。
1-100