专栏首页IT技能应用Spring Cloud 断路器
原创

Spring Cloud 断路器

Spring Cloud 提供了多种不同的功能,允许您在自己的应用程序中使用一致性的 API,开发人员选择最适合您的应用程序需求的功能。

支持的实现

Netfix Hystrix

弹性4J

哨兵

春季重试

核心概念

要在您的代码中创建生产,您可以使用CircuitBreakerFactoryAPI。当您在类路径中包含Spring Cloud Circuit Breaker starter 时,将自动为您创建一个实现此API 的bean。给个使用此API 的非常简单的例子

@服务

公共静态类 DemoControllerService {

私人休息模板休息;

私人断路器工厂 cbFactory;

公共 DemoControllerService(RestTemplate 休息,CircuitBreakerFactory cbFactory){

this.rest = 休息;

this.cbFactory = cbFactory;

}

公共字符串慢(){

return cbFactory.create("slow").run(() -> rest.getForObject("/slow", String.class), throwable -> "fallback");

}

}

该CircuitBreakerFactory.createAPI将创建一个命名类的一个实例CircuitBreaker。该运行方法采用一个供应商和一个功能。这就是您要包装在供应时中的代码。Function是法院跳闸这将执行的回退。将传递Throwable导致回退被触发的函数。如果您不想提供后备,您可以选择退出后备。

反应式代码中的

如果 Project Reactor 在类路径上,那么您也可以使用 ReactiveCircuitBreakerFactory 用于响应式代码。

@服务

公共静态类 DemoControllerService {

私有 ReactiveCircuitBreakerFactory cbFactory;

私有 WebClient webClient;

公共演示控制器服务(WebClient webClient,ReactiveCircuitBreakerFactory cbFactory){

this.webClient = webClient;

this.cbFactory = cbFactory;

}

公共单声道慢(){

return webClient.get().uri("/slow").retrieve().bodyToMono(String.class).transform(

it -> cbFactory.create("slow").run(it, throwable -> return Mono.just("fallback")));

}

}

该ReactiveCircuitBreakerFactory.createAPI 将创建一个命名类的一个实例ReactiveCircuitBreaker。该方法应该采用MonoorFlux 使其包装在国外中。您可以选择配置一个回退功能,如果回跳闸通过Throwable导致失败退,则该回退将被调用。

Spring启动配置

Spring Cloud BOM 提供以下启动器

Hystrix - org.springframework.cloud:spring-cloud-starter-netflix-hystrix

弹性4J - org.springframework.cloud:spring-cloud-starter-circuitbreaker-resilience4j

反应性弹性4J - org.springframework.cloud:spring-cloud-starter-circuitbreaker-reactor-resilience4j

春季重试—— org.springframework.cloud:spring-cloud-starter-circuitbreaker-spring-retry

哨兵—— org.springframework.cloud:spring-cloud-starter-circuitbreaker-sentinal

未完待续……

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spring Cloud Hystrix 断路器

    Spring Cloud Hystrix 服务容错保护一、Hystrix 是什么 雪崩效应 雪崩效应产生场景 常见解决...

    cxuan
  • Spring Cloud(五)断路器监控(Hystrix Dashboard)

    在上两篇文章中讲了,服务提供者 Eureka + 服务消费者 Feign,服务提供者 Eureka + 服务消费者(rest + Ribbon),本篇文章结合,...

    搜云库
  • Spring Cloud中的断路器Hystrix

    什么是微服务?举个简单的例子,我想做一个用户管理项目,里边就三个功能:用户注册、用户登录、用户详情浏览。按照传统的软件开发方式直接创建一个Web项目,分分钟就把...

    江南一点雨
  • Spring Cloud(5)——熔断器

    Hystrix熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。

    会跳舞的机器人
  • Spring断路器使用

    可以看下英文的介绍:https://link.jianshu.com/?t=https%3A%2F%2Fmartinfowler.com%2Fbliki%2FC...

    心平气和
  • Spring Cloud 系列之熔断器 Hystrix

      Hystrix 是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix 能够保证在一个...

    Demo_Null
  • Spring Cloud Gateway

    SpringCloud Gateway是Spring Cloud的一个子项目,该项目是基于Spring5.0、SpringBoot2.0和Project Rea...

    故里
  • 基于Spring Boot和Spring Cloud实现微服务架构学习!

    Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总...

    美的让人心动
  • Spring Cloud 之服务网关 Gateway (一)

    Spring Cloud Gateway 是Spring官方基于 Spring 5.0, Spring Boot 2.0 和 Project Reactor 等...

    芥末鱿鱼
  • 推荐一个spring cloud 学习路线,绝对合理化

    房上的猫
  • Spring Cloud是什么,和Dubbo对比呢?

    简介 Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消...

    Java技术栈
  • Spring Cloud面试题(2020最新版)

    Java面试总结汇总,整理了包括Java基础知识,集合容器,并发编程,JVM,常用开源框架Spring,MyBatis,数据库,中间件等,包含了作为一个Java...

    Java架构师必看
  • Spring Cloud 入门教程:聊聊Spring Cloud

    Spring Cloud 是将分布式系统中一系列基础框架/工具进行整合的框架。其中包含:服务注册与发现、服务网关、熔断器、配置中心、消息中心、服务链路追踪等等。

    KenTalk
  • Spring Cloud 入门教程:聊聊Spring Cloud

    Spring Cloud 是将分布式系统中一系列基础框架/工具进行整合的框架。其中包含:服务注册与发现、服务网关、熔断器、配置中心、消息中心、服务链路追踪等等。

    wuweixiang
  • Spring Cloud-微服务架构集大成者

    本文不是讲解如何使用Spring Cloud的教程,而是探讨Spring Cloud是什么,以及它诞生的背景和意义。

    爱撸猫的杰
  • 快速突击 Spring Cloud Gateway

    Spring Cloud Gateway 是一款基于 Spring 5,Project Reactor 以及 Spring Boot 2 构建的 API 网关,...

    闻人的技术博客
  • 什么是微服务

    海仔
  • Spring Cloud 系列之服务网关 Gateway

      Spring Cloud Gateway 是 Spring Cloud 体系的第二代网关组件,基于 Spring 5.0 的新特性 WebFlux 进行开发...

    Demo_Null
  • Spring Cloud Gateway:新一代API网关服务

    Gateway是在Spring生态系统之上构建的API网关服务,基于Spring 5,Spring Boot 2和 Project Reactor等技术。Gat...

    macrozheng

扫码关注云+社区

领取腾讯云代金券