更新时间:2024-11-08 GMT+08:00
分享

策略配置

熔断策略配置

此配置只对当前服务生效。

当客户端通过应用网关访问某一后端服务时,若该后端服务下的某一个实例发生故障,则会熔断掉该实例,可继续访问其他实例。

  1. 登录微服务引擎控制台
  2. 在左侧导航栏选择“应用网关 ”。
  3. 单击待操作的实例名称。
  4. 在左侧导航栏选择“路由管理 > 服务管理”。
  5. 单击待操作的服务,在服务详情页面,在“策略配置”区域,单击“配置熔断策略”,在弹出框中输入策略信息,具体参数可参见表1

    表1 熔断策略信息

    参数

    说明

    统计周期

    配置统计周期,即在该周期内达到一定条件,便会发生熔断。默认值为10秒。

    连续错误次数

    配置在统计周期内连续发生的5xx类错误的次数,其中5xx类错误包括服务连接超时、连接错误或失败、请求失败、上游服务异常和上游连接重置等。默认值为5,当值设置为0时,则该策略不生效。

    说明:

    连续错误次数表示所有节点连续错误次数的总和。实际上单节点的连续错误次数=连续错误次数/节点数,且值向上取整。

    熔断时长

    即熔断触发后单次持续的时长,其熔断持续时长为单次时长与熔断次数的乘积。默认值为30秒,单位可为毫秒、秒、分和时。

    说明:

    统计周期要求小于熔断时长。

    最大熔断实例比例

    设置最多能够熔断的实例占所有实例的百分比。默认为10%。

    最小健康实例比例

    当健康实例数占所有实例的比例至少达到设置的比例时,则熔断策略才会生效;当健康实例数占所有实例的比例低于设置的比例时,熔断策略不生效。默认值为0%,表示该配置不生效。

    熔断策略开关

    可设置该策略是否打开,默认关闭。

    当开启了熔断策略,响应码为5xx或者响应header中包含“X-HTTP-STATUS-CODE=5xx”时,都将记录为错误请求,连续次数达到设置次数,熔断策略生效。

    注意:

    响应header中添加X-HTTP-STATUS-CODE=5xx为业务主动行为,主要为了适配很多项目非标准响应码返回但有需要熔断的场景,当设置了X-HTTP-STATUS-CODE信息后,网关将不再考虑响应码是否为5xx,仅校验X-HTTP-STATUS-CODE的值是否满足要求,即当响应码为5xx,但是设置了X-HTTP-STATUS-CODE=200时,网关不会进行熔断。

  6. 单击“确定”创建完成。

    熔断策略创建完成后可进行如下操作:

    • 单击“修改熔断策略”根据需要编辑策略。
    • 单击“删除熔断策略”删除该策略。

连接池配置

应用网关支持您对某个服务配置后端upstream的连接超时时间,以防出现网关的idletimeout >= 后端服务的idletimout,在一段时间没有请求时,后端服务主动关闭连接,而网关未及时感知,出现upstream connect error or disconnect/reset before headers. reset reason: connection termination错误。

此配置只对当前服务生效。

  1. 登录微服务引擎控制台
  2. 在左侧导航栏选择“应用网关 ”。
  3. 单击待操作的实例名称。
  4. 在左侧导航栏选择“路由管理 > 服务管理”。
  5. 单击待操作的服务,在服务详情页面,在“策略配置”区域,在“连接池”页签,单击“配置连接池”,在弹出框中输入策略信息,具体参数可参见表2

    表2 连接池参数信息

    参数

    说明

    取值范围

    ConnectionTimeout

    作用于网关连接,即在指定的时间内,网关没有连接到上游服务端,则会断开连接。单位可选择毫秒、秒(s)、分(m)和时(h),默认为10s。

    1-100

    IdleTimeout

    作用于网关连接,即在指定的时间内,网关到上游服务端若没有请求,则会断开连接。单位为秒,默认为30s。

    0-600

    是否启用策略

    可设置该策略是否打开,默认打开。

    -

  6. 单击“确定”创建完成。连接池策略创建完成后,可单击“修改连接池策略”根据需要编辑策略。

配置亲和路由

在配置亲和路由前,需先熔断策略配置

开启亲和路由之后,应用网关将会优先调用相同可用区的服务,当相同可用区的部分服务发生熔断后,将逐步切换流量到其它可用区。流量不会切换到未配置可用区的服务上。如果手动在ECS上执行命令部署带可用区标签的服务时,需执行部署命令时加上

-spring.cloud.servicecomb.discovery.datacenter.availableZone = {可用区}。

  1. 登录微服务引擎控制台
  2. 在左侧导航栏选择“应用网关 ”。
  3. 单击待操作的实例名称。
  4. 在左侧导航栏选择“路由管理 > 服务管理”。
  5. 单击待操作的服务,在服务详情页面,在“策略配置”区域,在“亲和路由”页签下,单击“配置亲和路由”,在弹出框中单击
  6. 单击“确定”打开亲和路由。

相关文档