首页 > 编程语言 > 详细

springcloud hystrix容断器

时间:2020-02-17 23:47:30      阅读:77      评论:0      收藏:0      [点我收藏+]

hystrix容断器简介

在分布式系统中,服务与服务之间的依赖错综复杂, 一种不可避免的情况就是某些服务出现故障,导致依赖于它们的其他服务出现远程调度的线程阻塞, Hystrix 是Netflix 公司开源的 一个项目,它提供了熔断器功能,能够阻止分布式系统中出现联动故障 ,Hystrix 是通过隔离服务的访问点阻止联动故障的,并提供了故障的解决方案,从而提 了整个分布式系统的弹性。

在RestTemplate上使用熔断器

在eureka-ribbon-client工程的基础上进行修改

引入依赖

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-hystrix</artifactId>
        </dependency>

 

启动类添加注解

@EnableHystrix

 

添加发生熔断时调用的方法

@Service
public class RibbonService {

    @Autowired
    RestTemplate restTemplate;
    
    @HystrixCommand(fallbackMethod = "hiError")
    public String hi(String name) {
        return restTemplate.getForObject("http://eureka-client/hi?name="+name,String.class);
    }
    
    public String hiError(String name) {
        return "hi,"+name+",sorry,error!";
    }
}

 

测试

在浏览器上输入地址  http://localhost:8765/hi,如果停止eureka-client服务,则显示

技术分享图片

在feign上使用熔断器

由于feign起步依赖已经引入了熔断器,所以在feign中使用hystrix熔断器不需要引用任何依赖

修改配置文件

修改配置文件 application.yml

feign:
  hystrix:
    enabled: true

 

修改服务调用接口

修改EurekaClientFeign类,添加fallback = HiHystrix.class,如图:

技术分享图片

添加熔断器返回器

添加HiHystrix类,并继承sayHiFromClientEureka接口

@Component
public class HiHystrix implements EurekaClientFeign {
    @Override
    public String sayHiFromClientEureka(String name) {
           return "hi,"+name+",sorry,error!";
    }
}

 

测试

在浏览器上输入地址  http://localhost:8766/hi,如果停止eureka-client服务,则显示

技术分享图片

 

springcloud hystrix容断器

原文:https://www.cnblogs.com/tanouou/p/12324318.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!