download:测试必学:探秘大厂全链路质量保障体系
Offer 驾到,掘友接招!我正在参与2022春招系列活动-Debug实录任务,点击查看活动详情。
Spring Cloud CircuitBreaker 提供了跨不同断路器实现的抽象。它提供了在您的应用程序中使用的一致 API,让您(开发人员)选择最适合您的应用程序需求的断路器实现。
Spring Cloud CircuitBreaker 项目包含 Resilience4J 和 Spring Retry 的实现。Spring Cloud CircuitBreaker 中实现的 API 位于 Spring Cloud Commons 中。
Spring Cloud 支持一下几种 CircuitBreaker
Resilience4JSentinelSpring Retry
下文主要描述 Resilience4J 的使用
Resilience4J 介绍
Resilience4J 其实是参照 Netfix Hystrix 实现的的断路器
断路器 本身是一种开关装置,当某个服务单元发生故障之后,通过断路器的故障监控(类似保险熔断),向调用方法返回一个符合预期的,可处理的被选相应(FallBack), 而不是长时间的等待或者跑出调用方法无法处理的异常,这样就保证了服务调用方的线程不会长时间,不必要地占用,从而避免了故障在分布式系统中进行蔓延,从而导致雪崩效应。
Resilience4J 实现有两种 starter,一种用于 reactor 方式的依赖,另一种用于非 reactor 的 starter。
依赖如下:
org.springframework.cloud:spring-cloud-starter-circuitbreaker-resilience4j普通模式org.springframework.cloud:spring-cloud-starter-circuitbreaker-reactor-resilience4jreactor 模式
reactor 模式的依赖可以配合 spring cloud gateway 使用