更新时间:2024-03-18 GMT+08:00

配置流量策略

  1. 登录应用服务网格控制台,单击服务网格的名称,进入网格详情页面。
  2. 在左侧导航栏选择“服务管理”,在列表右上方选择服务所在命名空间。
  3. 选择一个服务,单击操作列的“流量治理”,在右侧页面进行重试、超时、连接池、熔断、负载均衡、HTTP头域、故障注入策略的配置。

    重试

    服务访问失败自动重试,提高总体访问成功率和质量。

    选择“重试”页签,单击“立即配置”,在弹出对话框中,根据实际需求配置如下参数:

    表1 重试参数说明

    参数名称

    参数说明

    取值范围

    重试次数

    单个请求允许的重试次数,间隔默认为25ms,实际的重试次数也取决于配置的超时时间和重试超时时间

    1-2147483647

    重试超时时间(s)

    单个请求的超时时间,包括初次请求和重试请求,默认值与配置的超时时间相同

    0.001-2592000

    重试条件

    配置重试的条件,详情请参照retry policiesgRPC retry policies

    -

    超时

    服务访问超时自动处理,快速失败,避免资源锁定和请求卡顿。

    选择“超时”页签,单击“立即配置”,在弹出对话框中,根据实际需求配置如下参数:

    表2 超时参数说明

    参数名称

    参数说明

    取值范围

    超时时间(s)

    HTTP请求超时时间

    0.001-2592000

    连接池

    目的是断开超过阈值的连接和请求,保护目标服务。连接池设置应用于上游服务的每个实例,可以应用在TCP级别和HTTP级别。更多信息请参照Circuit breaker

    选择“连接池”页签,单击“立即配置”,在弹出对话框中,根据实际需求配置如下参数:

    表3 TCP设置参数说明

    参数名称

    参数说明

    取值范围

    最大连接数

    到目标服务的HTTP/TCP连接的最大数量,默认232-1

    1-2147483647

    最大无响应次数

    在确定连接已失效前,要发送的保活探测的最大数量。默认使用操作系统级别配置(除非被覆盖,Linux默认为9)

    1-2147483647

    健康检查间隔(s)

    保活探测之间的持续时间。默认使用操作系统级别配置(除非被覆盖,Linux默认为75秒)

    0.001-2592000

    连接超时时间(s)

    TCP连接超时时间,默认值为10秒

    0.001-2592000

    最短空闲时间(s)

    在开始发送保活探测前,连接需要处于空闲状态的持续时间。默认是使用操作系统级别配置(除非被覆盖,Linux默认为7200秒,即2小时)

    0.001-2592000

    表4 HTTP设置参数说明

    参数名称

    参数说明

    取值范围

    最大请求数

    转发到单个服务实例的最大请求数,默认232-1

    1-2147483647

    最大等待请求数

    转发到目标服务的最大待处理的HTTP请求数,默认232-1

    1-2147483647

    连接最大空闲时间(s)

    上游服务连接的空闲超时。如果一定时间内没有活跃的请求,达到空闲时间后,连接将关闭,如果未设置,默认值为1小时

    0.001-2592000

    最大重试次数

    一定时间内,服务所有实例的最大重试次数,默认为232-1

    1-2147483647

    每连接最大请求数

    每个连接到后端的最大请求数。将此参数设置为1将禁用保活,默认0,表示“无限”,最多229

    1-536870912

    熔断

    自动隔离不健康的实例,提高服务整体访问成功率。

    熔断器跟踪服务实例的访问状态,通过跟踪一段时间内服务实例的访问请求判定其健康状况,将不健康的实例从连接池中隔离,从而提高服务总体的访问成功率,适用于HTTP和TCP服务。对于HTTP服务,连续返回5xx错误的实例认定为不健康。对于TCP服务,连接超时或者连接失败的实例认定为不健康。详情请参照Outlier detection

    选择“熔断”页签,单击“立即配置”,在弹出对话框中,根据实际需求配置如下参数:

    表5 熔断参数说明

    参数名称

    参数说明

    取值范围

    连接错误数

    检查周期内连续错误的次数,连续错误次数超过该阈值将会被隔离,此功能默认为5

    1-2147483647

    基础隔离时间(s)

    满足熔断条件的实例被隔离的基础隔离时间。服务实例实际隔离时间等于 基础隔离时间 x 隔离次数,必须>=0.001s,默认值为30秒

    0.001-2592000

    检查周期(s)

    实例异常检查的间隔,根据在该时段内异常次数是否超过阈值决定是否触发隔离,必须>=0.001s,默认值为10秒

    0.001-2592000

    最大隔离实例比例(%)

    被隔离的服务实例最大百分比,默认为10%

    1-100

    负载均衡

    为目标服务配置满足业务要求的负载均衡策略,控制选择后端服务实例。

    选择“负载均衡”页签,单击“立即配置”,在弹出对话框中,根据实际需求选择负载均衡算法。

    • 轮询调度:网格使用的默认负载均衡算法,实例池中的每个实例轮流获得请求。
    • 最少连接:随机选取两个健康的实例,再从所选取的两个实例中选择一个连接数较少的实例。
    • 随机调度:从所有健康的实例中,随机选取一个。
    • 一致性哈希:包含四种类型,如表6所述。
      表6 一致性哈希算法类型

      类型

      说明

      基于HTTP的Header

      需要输入HTTP头域的键名,根据HTTP请求中的请求头名称来计算哈希值,相同的值会转发到同一实例中。

      基于Cookie

      需要输入Cookie的键名,根据HTTP请求中的cookie的键名来计算哈希值,相同的值会转发到同一实例中。

      基于源IP

      根据HTTP请求中的源IP地址来计算哈希值,相同的值会转发到同一实例中。

      基于query参数

      需要输入query参数的键名,根据HTTP请求中的query参数名称来计算哈希值,相同的值会转发到同一实例中。

    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