Spring Cloud 中断路器 Circuit Breaker的应用
环境:Springboot2.3.12.RELEASE + cloud-netflix-hystrix2.2.10.RELEASE
SpringCloud Circuit breaker(断路器)提供了跨不同断路器实现的抽象。它提供了在应用程序中使用的一致API,允许开发人员选择最适合应用程序需要的断路器实现。
支持的断路器类型:
要在代码中创建断路器(circuit breaker),可以使用断路器工厂API。当您在类路径中包含Spring Cloud Circuit Breaker starter时,将自动创建一个实现此API的bean。下面给出了使用此API的一个非常简单的示例:
通过引入下面不同依赖来确定使用具体的那个断路器
以上5种断路器是不同的实现方式,根据需要引入即可。
这里以Hystrix为例来使用
引入依赖
定义具有熔断功能的服务
Controller接口
CircuitBreakerFactory#create方法创建了CircuitBreaker实例
根据当前的CLASSPATH我们使用的是Hystrix,那么这里使用的工厂就是:
HystrixCircuitBreakerFactory类
泛型参数:Setter就是用来配置Hystrix相关配置信息的(这里主要用来CommandKey与Setter进行绑定),HystrixConfigBuilder用来构建 HystrixCommand.Setter对象。
当执行HystrixCircuitBreakerFactory#configure方法时:
断路器具体的子类实现HystrixCircuitBreakerFactory
断路器工厂有了,接下来就是通过工厂创建具体的断路器对象了
通过上面的代码执行cbf().create("demo-slow")方法时执行了什么?
上面创建的是HystrixCircuitBreaker断路器,当执行run方法时:
完毕!!!
关注+转发
Sentinel 与 Hystrix 的对比
SpringCloud Hystrix实现资源隔离应用
SpringCloud Gateway 应用Hystrix 限流功能 自定义Filter详解
Spring Boot Security防重登录及在线总数
Spring Retry重试框架的应用
springboot mybatis jpa 实现读写分离
Spring容器对象BeanFactory与ApplicationContext你都清楚了吗?