download: 【体系课】吃透前端工程化,大厂级实战项目以战带练无密
Offer 驾到,掘友接招!我正在参与2022春招系列活动-Debug实录任务,点击查看活动详情。
Spring Cloud CircuitBreaker 提供了跨不同断路器实现的抽象。它提供了在您的应用程序中使用的一致 API,让您(开发人员)选择最适合您的应用程序需求的断路器实现。
Spring Cloud CircuitBreaker 项目包含 Resilience4J 和 Spring Retry 的实现。Spring Cloud CircuitBreaker 中实现的 API 位于 Spring Cloud Commons 中。
Spring Cloud 支持一下几种 CircuitBreaker
Resilience4J
Sentinel
Spring 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-resilience4j
reactor 模式
reactor
模式的依赖可以配合 spring cloud gateway
使用