小D课堂 - 新版本微服务springcloud+Docker教程_5-03 feign结合hystrix断路器开发实战上

笔记

3、Feign结合Hystrix断路器开发实战《上》
    简介:讲解SpringCloud整合断路器的使用,用户服务异常情况

    1、加入依赖
    
    注意:网上新旧版本问题,所以要以官网为主,不然部分注解会丢失
    最新版本 2.0

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


    2、增加注解
        启动类里面增加注解
        @EnableCircuitBreaker

        注解越来越多-》 SpringCloudApplication注解

    3、API接口编码实战
      熔断-》降级

        1)最外层api使用,好比异常处理(网络异常,参数或者内部调用问题)
            api方法上增加 @HystrixCommand(fallbackMethod = "saveOrderFail")
            
            编写fallback方法实现,方法签名一定要和api方法签名一致(注意点!!!)



        

    补充: 修改maven仓库地址
    pom.xml中修改

    <repositories>
        <repository>
            <id>nexus-aliyun</id>
            <name>Nexus aliyun</name>
            <layout>default</layout>
            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
    </repositories>

开始

spring cloud整合官方文档
http://cloud.spring.io/spring-cloud-netflix/single/spring-cloud-netflix.html#_circuit_breaker_hystrix_clients
搜索关键字
How to Include Hystrix

 

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



先加入依赖。在order service里面加入依赖

maven如果下载比较慢的话,百度一下换成阿里云的maven地址



只作用于当前项目的阿里云地址

<repositories>
        <repository>
            <id>nexus-aliyun</id>
            <name>Nexus aliyun</name>
            <layout>default</layout>
            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
    </repositories>


复制到最下面

启动类里面加注解

@EnableCircuitBreaker

下单Controller修改


SpringCloudApplication这一个注解包含上面那几个注解。所以可以用这一个注解替换上面的注解

编码


上面的方法为了和下面的保持一致,所以这里也用Map包装起来

启动应用。orderService和ProductService
注解中心看到两个服务已经有了。

这是正常的情况下 请求到的数据

如果某一天服务挂了。把ProductService这个服务停掉。
再去访问OrderService

以上就是熔断后降级的操作



 

posted @ 2019-09-02 20:29  高山-景行  阅读(182)  评论(0编辑  收藏  举报