策略配置
熔断策略配置
此配置只对当前服务生效。
当客户端通过应用网关访问某一后端服务时,若该后端服务下的某一个实例发生故障,则会熔断掉该实例,可继续访问其他实例。
- 登录微服务引擎控制台。
- 在左侧导航栏选择“应用网关 ”。
- 单击待操作的实例名称。
- 在左侧导航栏选择“路由管理 > 服务管理”。
- 单击待操作的服务,在服务详情页面,在“策略配置”区域,单击“配置熔断策略”,在弹出框中输入策略信息,具体参数可参见表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时,网关不会进行熔断。
- 单击“确定”创建完成。
熔断策略创建完成后可进行如下操作:
- 单击“修改熔断策略”根据需要编辑策略。
- 单击“删除熔断策略”删除该策略。
连接池配置
应用网关支持您对某个服务配置后端upstream的连接超时时间,以防出现网关的idletimeout >= 后端服务的idletimout,在一段时间没有请求时,后端服务主动关闭连接,而网关未及时感知,出现upstream connect error or disconnect/reset before headers. reset reason: connection termination错误。
此配置只对当前服务生效。
- 登录微服务引擎控制台。
- 在左侧导航栏选择“应用网关 ”。
- 单击待操作的实例名称。
- 在左侧导航栏选择“路由管理 > 服务管理”。
- 单击待操作的服务,在服务详情页面,在“策略配置”区域,在“连接池”页签,单击“配置连接池”,在弹出框中输入策略信息,具体参数可参见表2。
- 单击“确定”创建完成。连接池策略创建完成后,可单击“修改连接池策略”根据需要编辑策略。
配置亲和路由
在配置亲和路由前,需先熔断策略配置。
开启亲和路由之后,应用网关将会优先调用相同可用区的服务,当相同可用区的部分服务发生熔断后,将逐步切换流量到其它可用区。流量不会切换到未配置可用区的服务上。如果手动在ECS上执行命令部署带可用区标签的服务时,需执行部署命令时加上
-spring.cloud.servicecomb.discovery.datacenter.availableZone = {可用区}。
- 登录微服务引擎控制台。
- 在左侧导航栏选择“应用网关 ”。
- 单击待操作的实例名称。
- 在左侧导航栏选择“路由管理 > 服务管理”。
- 单击待操作的服务,在服务详情页面,在“策略配置”区域,在“亲和路由”页签下,单击“配置亲和路由”,在弹出框中单击。
- 单击“确定”打开亲和路由。