springcloud熔断机制

最近项目用到springcloud,研究了下springcloud的熔断机制Hystrix。

熔断机制,就是下游服务出现问题后,为保证整个系统正常运行下去,而提供一种降级服务的机制,通过返回缓存数据或者既定数据,避免出现系统整体雪崩效应。在springcloud中,该功能可通过配置的方式加入到项目中。

理论上需要进行分布式调用的服务都应该加上,在项目中,可根据实际项目需要进行添加。

Maven项目中提供远程调用Feign中已经依赖了Hystrix,所以在项目的pom配置上不用做任何改动。

实现步骤:

1、在需要加入熔断的服务配置文件application.properties中增加

feign.hystrix.enabled=true

如果为application.yml,配置相应改为

feign:

  hystrix:

    enabled: true

2、修改远程调用接口DemoRemote中注解@FeignClient(name="RemoteSericeProvider"),增加对应处理降级服务的类,如@FeignClient(name="RemoteSericeProvider", fallback="DemoRemoteHystrix.class")

@FeignClient(name= "RemoteSericeProvider",fallback = "DemoRemoteHystrix.class")

public interface DemoRemote{

  String getWord();

}

3、在熔断服务中创建回调类,该类实现服务中远程调用接口DemoRemote,Hystrix会在下游服务故障后,调用回调类返回降级数据,可自行实现具体逻辑,这里简单返回一个字符串。

@Component

public class DemoRemoteHystrix implements DemoRemote{

  @Override

  public String getWord() {

    return "service breakdown";

  }

}

整个过程还是比较简单,修改很少的代码就可以实现。

原文地址:https://www.cnblogs.com/archal/p/8146292.html

时间: 2024-10-12 19:07:14

springcloud熔断机制的相关文章

SpringCloud 基础教程(五) 服务熔断机制(Eureka + Ribbon + Hystrix)

1.启动[服务中心]集群,即 Eureka Server 参考 SpringCloud 基础教程(一) 服务中心及集群(Eureka Server) 2.启动[服务提供者]集群,即 Eureka Client 参考 SpringCloud 基础教程(二) 服务注册及集群(Eureka Client) 3.启动[服务消费者],即 Eureka Discovery Client 参考 SpringCloud 基础教程(三) 服务发现及负载均衡(Eureka Discovery Client + Ri

SpringCloud系列七:Hystrix 熔断机制(Hystrix基本配置、服务降级、HystrixDashboard服务监控、Turbine聚合监控)

1.概念:Hystrix 熔断机制 2.具体内容 所谓的熔断机制和日常生活中见到电路保险丝是非常相似的,当出现了问题之后,保险丝会自动烧断,以保护我们的电器, 那么如果换到了程序之中呢? 当现在服务的提供方出现了问题之后整个的程序将出现错误的信息显示,而这个时候如果不想出现这样的错误信息,而希望替换为一个错误时的内容. 一个服务挂了后续的服务跟着不能用了,这就是雪崩效应 对于熔断技术的实现需要考虑以下几种情况: · 出现错误之后可以 fallback 错误的处理信息: · 如果要结合 Feign

SpringCloud微服务的熔断机制以及相关概念介绍

1.什么是服务的熔断机制? 熔断机制是对系统的防护,比如受到一些恶意攻击,那么需要熔断机制来保护系统的微服务,做出响应,避免资源被耗尽.既要能响应,又要能防护,当我们的请求达到一个负载阈值,就启用熔断,把真实接口关掉,给客户端请求一个响应,这个响应,我们可以设置.服务熔断就是对该服务的调用执行熔断,对应后续请求,不在继续调用该目标服务,而是直接返回,从而可以快速释放资源,或者服务出现故障,会把故障信息返回给客户端 服务熔断的几种方式: 断路器,这是一个硬件设施,比如保险丝或者电子设备等等 断路器

熔断机制hystrix

一.问题产生 雪崩效应:是一种因服务提供者的不可用导致服务调用者的不可用,并将不可用逐渐放大的过程 正常情况下的服务: 某一服务出现异常,拖垮整个服务链路,消耗整个线程队列,造成服务不可用,资源耗尽: 形成过程: 1)服务提供者不可用 a)硬件故障:硬件损坏造成的服务器主机宕机, 网络硬件故障造成的服务提供者的不可访问 b)程序Bug: c)   缓存击穿:缓存击穿一般发生在缓存应用重启, 所有缓存被清空时,以及短时间内大量缓存失效时. 大量的缓存不命中, 使请求直击后端,造成服务提供者超负荷运

利用Spring Cloud实现微服务- 熔断机制

1. 熔断机制介绍 在介绍熔断机制之前,我们需要了解微服务的雪崩效应.在微服务架构中,微服务是完成一个单一的业务功能,这样做的好处是可以做到解耦,每个微服务可以独立演进.但是,一个应用可能会有多个微服务组成,微服务之间的数据交互通过远程过程调用完成.这就带来一个问题,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的"扇出".如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的&

芯片程序烧录的熔断机制与安全

熔丝位是在一个特定的地址上可以读到熔丝状态的一个位.0表示已熔断,1表示未熔断.单片机MCU或者CPU等芯片在特定的引脚外加高电平后,可以通过产生的电流烧断里边的熔丝,进而使芯片里的程序变得不可读写只能运行,这就是熔断功能起到的效果.早先很多单片机或者安全加密芯片具备熔丝功能.当产品调试定版后,在量产时都会对熔丝位进行熔断处理,虽然没有直接对芯片内的程序和数据处理,但因为变为不可读了,防止盗版商进行数据分析,间接起到了知识产权保护,也就是防止盗版的效果.像ATmel的某些型号单片机就具备该功能.

网关中加入熔断机制(Hystrix)

网关中加入熔断机制 在网关中加入熔断机制 添加依赖项 spring-cloud-gateway项目POM文件加入spring-cloud-starter-netflix-hystrix <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </depende

spring cloud 2.x版本 Ribbon服务发现教程(内含集成Hystrix熔断机制)

本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3 前言 本文基于前两篇文章eureka-server和eureka-client的实现. 参考 eureka-server eureka-client 1 Ribbon工程搭建 1.1 创建spring boot工程:eureka-ribbon 1.2 pom.xml所需要依赖的jar包 <dependency> <groupId>org.springframework.clo

Spring Cloud 入门教程(七): 熔断机制 -- 断路器

对断路器模式不太清楚的话,可以参看另一篇博文:断路器(Curcuit Breaker)模式,下面直接介绍Spring Cloud的断路器如何使用. SpringCloud Netflix实现了断路器库的名字叫Hystrix. 在微服务架构下,通常会有多个层次的服务调用. 下面是微服架构下, 浏览器端通过API访问后台微服务的一个示意图: 一个微服务的超时失败可能导致瀑布式连锁反映,下图中,Hystrix通过自主反馈实现的断路器, 防止了这种情况发生. 图中的服务B因为某些原因失败,变得不可用,所