`

spring cloud hystrix 断路器

阅读更多
spring cloud hystrix 断路器

断路器本身是一种开关保护机制,用于在电路上保护线路过载,当线路中有电器发生短路时,
断路器能够及时切断故障电路,防止发生过载、发热甚至起火等严重后果。

Spring Cloud Hystrix 实现了断路器、线路隔离等一系列服务保护功能。
它也是基于 Netflix 的开源框架 Hystrix 实现的,该框架的目标在于通过控制那些访问远程系统、
服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。Hystrix 具备服务降级、服务熔断、
线程和信号隔离、请求缓存、请求合并以及服务监控等强大功能。

(1)pom依赖jar包
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>

(2)@EnableCircuitBreaker 注解开启断路器功能
@EnableCircuitBreaker
@EnableEurekaClient
@RibbonClient(name = "SPRING-CLOUD-CLIENT3",configuration = MyRibbonConfig.class)
@SpringBootApplication
public class App {

@Bean
    @LoadBalanced
    RestTemplate restTemplate() {
        return new RestTemplate();
    }

public static void main(String[] args) throws Exception {
        SpringApplication.run(App.class, args);
    }
}
(3)改造服务消费方式,新增 HelloService 类,注入 RestTemplate 实例。
然后,将在 ConsumerController 中对 RestTemplate 的使用迁移到 helloService 函数中,
最后,在 helloService 函数上增加 @HystrixCommand 注解来指定回调方法。

@Service
public class UserService {
@Autowired
private RestTemplate restTemplate;

//通过Thread.sleep 函数可让接口的处理线程不是马上返回内容,而是在阻塞几秒后才返回内容。由于 Hystrix 默认超时时间为 2000 毫秒,
//所以这里采用了 0 至 3000 的随机数以让处理过程有一定概率发生超时来触发断路器。
@HystrixCommand(fallbackMethod = "hiFallback")
public String getUsers() {
System.out.println("***********");
// 让处理线程等待几秒钟
        int sleepTime = new Random().nextInt(3000);
        try {
            Thread.sleep(sleepTime);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
String url = "http://192.168.137.1:8082/spring-cloud-client3/user/hi/";
RestTemplate r= new RestTemplate();
String result=r.getForObject(url, String.class);
System.out.println("result="+result);
return result;
}

public String hiFallback() {
return "err";
}
}

@Controller("usercontroller")
@RequestMapping("/user")
public class UserController{

@Autowired
private UserService userService;

@RequestMapping("/")
@ResponseBody
public String list() {
String res = userService.getUsers();
return "user";
}

@RequestMapping("/hi")
@ResponseBody
public String sayHi() {
System.out.println(" *** sayHi *** ");
return "a";
}
}





0
0
分享到:
评论

相关推荐

    详解Spring Cloud Hystrix断路器实现容错和降级

    Spring Cloud Hystrix断路器实现容错和降级 Spring Cloud Hystrix断路器是一种实现容错和降级的机制,它可以在服务不可用时,对配置了断路器的方法实行降级策略,临时调用备用方法。这种机制可以避免服务雪崩效应,...

    springcloud hystrix 断路由

    在本文中,我们将深入探讨“Spring Cloud Hystrix 断路器”的概念及其在实际应用中的工作原理。 首先,我们来理解什么是断路器模式。断路器模式是软件设计模式的一种,用于在系统中引入故障保护机制。当服务出现...

    Spring Cloud Netfix Hystrix断路器例子

    Spring Cloud Netfix Hystrix断路器例子工程。使用Spring Cloud Netflix Hystrix以及Spring RestTemplate或Spring Cloud Netflix Feign实现断路器模式。

    spring cloud Hystrix断路器的使用(熔断器)

    "spring cloud Hystrix断路器的使用" spring cloud Hystrix断路器是Netflix开发的一种断路器模式,用于防止级联故障在微服务架构中。断路器的使用可以防止服务之间的级联故障,使得系统更加稳定和可靠。 Hystrix...

    SpringCloud——断路器(Hystrix)

    在分布式系统中,Spring Cloud Hystrix 是一个关键的组件,它作为一个断路器来防止服务雪崩。断路器模式是微服务架构中的一个重要概念,用于提高系统的容错性和稳定性。下面我们将深入探讨 Spring Cloud Hystrix 的...

    【微服务架构】SpringCloud之断路器(hystrix)

    Feign使得编写消费其他服务的客户端变得更简单,同时也内置了Hystrix断路器,以确保高可用性。 总之,Spring Cloud Hystrix作为微服务架构中的关键组件,通过断路器机制提高了系统的稳定性和容错性。结合Eureka ...

    25-Spring Cloud断路器Hystrix1

    Spring Cloud 提供了断路器模式的实现,名为 Hystrix,用于防止服务间的级联故障,提高系统的容错性。断路器模式的核心思想是在调用远程服务时,通过一个中间层(即断路器)来监控调用的健康状况。当服务出现故障时...

    Spring Cloud Hystrix

    Spring Cloud Hystrix 提供的断路器可以在检测到服务不可用时自动切换到“打开”状态,阻止后续请求,从而防止服务雪崩。当服务恢复后,断路器会进入半开状态,允许有限的请求尝试,以确认服务是否已恢复正常。 ###...

    springcloud hystrix的使用

    Spring Cloud Hystrix是Spring Cloud生态中的一个关键组件,它主要负责实现服务容错和断路器模式,以提升分布式系统中的稳定性和弹性。在基于Spring Cloud构建的应用中,Hystrix能帮助我们构建出更加健壮的服务架构...

    SpringCloud中的断路器(Hystrix)和断路器监控(Dashboard)

    本篇主要介绍的是SpringCloud中的断路器(Hystrix)和断路器指标看板(Dashboard)的相关使用知识,需要的朋友可以参考下

    spring cloud hystrix 服务容错保护例子

    总结来说,`spring-cloud-hystrix`服务容错保护例子展示了如何利用Hystrix断路器模式在Spring Cloud环境中实现服务的高可用性和稳定性。结合Eureka Server,我们可以构建一个健壮的微服务架构,即使在部分服务故障的...

    03Spring Cloud Hystrix:服务容错保护1

    总之,Spring Cloud Hystrix通过断路器、线程隔离和服务降级等机制,有效地提高了微服务架构的健壮性和容错能力。开发者可以通过注解和配置轻松地在服务中集成这些功能,提升系统的整体稳定性。

    SpringCloud Hystrix服务熔断.docx

    【SpringCloud Hystrix服务熔断】是Spring Cloud生态中的一种关键组件,它引入了断路器模式,用于处理微服务架构中可能出现的雪崩效应。断路器模式的核心思想是在服务之间设置“保险丝”,当某个服务出现故障时,...

    spring cloud hystrix &&dashboard源码解读

    通过该配置类可以完成 Hystrix 断路器的基本设置和集成。 **配置类**: `org.springframework.cloud.netflix.hystrix.HystrixCircuitBreakerConfiguration` - **主要功能**: 初始化 Hystrix 相关的组件和配置。 - **...

    spring cloud降级服务-hystrix.7z

    Spring Cloud Hystrix 是一个基于 Netflix Hystrix 实现的服务降级、断路器和熔断器框架,它被广泛应用于分布式系统中的容错管理,以提高系统的稳定性和可用性。在微服务架构中,服务间通信是常见的操作,而Spring ...

    springCloud_hystrix(断路由服务降级)

    Hystrix 提供了一套完整的监控和管理工具,可以帮助开发者实时监控服务的健康状况以及断路器的状态。Spring Cloud 也集成了一些现成的监控工具,如 Turbine 和 Hystrix Dashboard,便于对多个服务实例上的 Hystrix ...

    详解SpringCloud微服务架构之Hystrix断路器

    通过以上步骤,我们可以构建一个利用Hystrix断路器的Feign客户端,实现对故障服务的智能处理,提高系统的整体稳定性和可靠性。 总结来说,Spring Cloud Hystrix是一个强大的工具,它通过断路器模式有效地解决了...

    Spring Cloud Hystrix 服务容错保护的原理实现

    在开始使用Spring Cloud Hystrix断路器之前,我们需要构建一个服务调用关系,包括服务消费者、服务提供者、Eureka注册中心等。然后,我们可以通过引入Hystrix来实现断路器的搭建。具体来说,我们需要在ribbon-...

    springcloud hystrix+feign

    1. **Hystrix**:Hystrix是Netflix开发的一个库,用于处理服务间的断路器模式。当服务出现故障或者响应时间过长时,断路器会打开,防止系统因单个服务的故障而雪崩。它还提供了熔断、降级、隔离和监控等功能,增强了...

    spring cloud gateway配置Hystrix 熔断、限流、后台调用注意点.pdf

    Hystrix 是一个由 Netflix 开源的断路器组件,用于防止级联故障和避免服务雪崩。Hystrix 可以检测到服务调用中的故障,并在故障发生时断开服务调用链,避免级联故障的发生。 Spring Cloud Gateway 中可以使用 ...

Global site tag (gtag.js) - Google Analytics