zoukankan      html  css  js  c++  java
  • 从实战的角度谈微服务(三):基于Feign的熔断

    一、简介

    熔断就是为了当提供接口的服务出现异常时,能够及时发现,返回一个固定的错误值代码。简单的说,熔断就是对服务异常的一种可控回应。

    本片基于上篇《从实战的角度谈微服务(三):基于Feign服务间的调用》在基于Feign项目的基础上,实现功能。

    二、配置步骤

    主要分三步:

    • 依赖包引入
    • 配置文件修改
    • 创建熔断回调接口类
    • 启动类添加注解

    三、依赖包引入(Feign内部已经支持了断路器,所以不需要像Ribbon方式一样,在Spring Boot启动类上加额外注解

    在pom.xml文件新引入可视化监控面板依赖包

    <!--熔断可视化依赖开始-->
    <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
    </dependency>
    <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
    </dependency>
    <!--(健康监控)配置和使用-->

    <!--添加熔断器结束-->

    四、配置文件修改

    开启熔断,默认为关闭状态

    feign:
      hystrix:
        enabled:true

    五、创建熔断回调接口类,实现要配置回调处理的Feign类

    1、创建UserFallback.java

    UserFallback.java对应处理TestService.java这一接口,实现其方法,当微服务接口出现调用异常时,即执行当前实现的接口。

    2、TestService.java添加注解声明

    在接口类TestService.java,通过配置注解“fallback = UserFallback.class”,声明熔断操作实现类

     六、修改项目启动类,添加可视化界面

    1、添加注解@EnableHystrixDashboard

    2、添加ServletRegistrationBean,

    springboot 版本如果是2.0则需要添加 ServletRegistrationBean 因为springboot的默认路径不是 "/hystrix.stream",只要在自己的项目里配置上下面的servlet就可以了。

    访问测试:
    输入:http://localhost:8765/hystrix

  • 相关阅读:
    Codeforces Round #631 (Div. 2)
    Codeforces Round #500 (Div. 2) [based on EJOI]
    KMP+状态机
    状态机模型
    最短编辑距离
    stringstream读入-最优乘车
    多重背包
    Codeforces:B. New Year and Ascent Sequence
    查找目录下所有文件使用到的宏
    QProcess调用外部程序并带参执行
  • 原文地址:https://www.cnblogs.com/lovechengyu/p/9509449.html
Copyright © 2011-2022 走看看