【体系课】吃透前端工程化,大厂级实战项目以战带练无密fen享

148 阅读1分钟

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 使用