- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- 使用前必读
- 权限管理
- 环境管理
- 应用管理
- 组件管理
- 配置管理
- 全链路流量控制
- 发布管理(公测)
- 技术栈管理
- 部署源管理
- 持续交付
- 微服务引擎
- 云审计服务支持的关键操作
- 查看监控指标及告警
- 开发指南
- 最佳实践
- API参考
- SDK参考
- 场景代码示例
-
常见问题
- 应用开发问题咨询指引
- 环境管理
-
应用管理
- 如何查看应用组件部署失败的原因?
- 如何解决单击应用组件外部访问地址返回504的问题?
- 如何处理虚拟机类型环境下应用创建实例失败?
- 实例长期处于创建中怎么办?
- 如何解决Docker运行node应用程序时的依赖问题?
- 如何定制Tomcat Context path?
- 如何固定应用组件IP?
- 如何处理虚拟机类型环境下创建和部署组件时遇到ECS错误?
- 如何处理虚拟机类型环境下创建和部署组件时端口访问不通的错误?
- 虚拟机类型环境下部署的应用组件支持在什么目录写文件?
- 如何处理虚拟机类型环境下部署的组件删除失败报host status is not active错误的问题?
- 如何体验ServiceStage的源码部署功能?
- 如何处理使用ServiceStage灰度发布升级组件失败?
- 如何通过挂载配置项方式修改容器部署的组件配置文件?
- 如何处理应用组件接入微服务引擎后在微服务治理下看到的应用名称和ServiceStage应用管理下的不同?
- 持续交付
- 软件中心
- 基础设施
- 应用运维
- 应用开发问题
- 视频帮助
- 文档下载
- 通用参考
展开导读
链接复制成功!
熔断
熔断规则借鉴了Resilience4j的思想,作用在服务端,其原理为:
达到指定failureRateThreshold错误率或者slowCallRateThreshold慢请求率时进行熔断,返回响应码429,慢请求通过SlowCallDurationThreshold定义。minimumNumberOfCalls是达到熔断要求的最低请求数量门槛,例如,若minimumNumberOfCalls是10,为计算失败率,则最小要记录10个调用。若只记录了9个调用,即使9个都失败,CircuitBreaker也不会打开。slidingWindowType指定滑动窗口类型,默认可选count/time, 分别是基于请求数量窗口和基于时间窗口。若滑动窗口为count,则最近slidingWindowSize次的调用会被记录和统计。若滑动窗口为time,则最近slidingWindowSize秒中的调用会被记录和统计。slidingWindowSize指定窗口大小,根据滑动窗口类型,单位可能是请求数量或者秒。
- Java Chassis的熔断作用于微服务消费者,需要微服务应用集成熔断模块,启用bizkeeper-consumer处理链。
在POM中添加如下依赖:
<dependency> <groupId>org.apache.servicecomb</groupId> <artifactId>handler-bizkeeper</artifactId> <version>${project.version}</version> </dependency>
详细说明请参考流量特征治理。
- Spring Cloud Huawei通过Aspect拦截RequestMappingHandlerAdapter实现了熔断,集成Spring Cloud Huawei以后,默认集成了客户端熔断模块spring-cloud-starter-huawei-governance, 只需要通过配置开启具体的客户端熔断策略。
servicecomb: matchGroup: AllOperation: | matches: - apiPath: prefix: "/" instanceIsolation: AllOperation: | minimumNumberOfCalls: 10 slidingWindowSize: 10 slidingWindowType: COUNT_BASED failureRateThreshold: 20 recordFailureStatus: - 502 - 503
默认策略是在异常错误码为502、503情况下生效,1.11.4-2021.0.x/1.11.4-2022.0.x版本开始支持响应头header的特殊场景生效。
响应头header设置key默认为"X-HTTP-STATUS-CODE",也支持自定义设置,只需要在客户端配置如下配置:
spring: cloud: servicecomb: governance: response: header: status: key: 'X-HTTP-EEROR-STATUS-CODE'
同样响应头header中设置的响应码也支持自定义,但是需要在容错策略中增加对应的错误码,例如设置X-HTTP-STATUS-CODE=511,那么错误码中增加511错误码,配置如下:
servicecomb: matchGroup: AllOperation: | matches: - apiPath: prefix: "/" instanceIsolation: AllOperation: | minimumNumberOfCalls: 10 slidingWindowSize: 10 slidingWindowType: COUNT_BASED failureRateThreshold: 20 recordFailureStatus: - 502 - 503 - 511
上述配置对所有实例启用了客户端熔断策略。 该策略采用COUNT_BASED滑动窗口策略,窗口大小为10个请求,到达10个请求的时候,开始计算错误率,如果错误率达到20%,就会对后续请求进行熔断。默认的滑动窗口策略是TIME_BASED。策略执行顺序为优先判断响应码,如果异常响应码满足策略设置,容错开启;响应码不满足后,再判断header设置的响应编码是否满足条件。