springCloud的Fegin+Hystrix熔断器的熔断降级

    在分布式环境中,许多服务依赖项中会出现一些不可避免地失败,比如说网络问题。Hystrix是一个库,通过添加延迟容差和容错逻辑来帮助您控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点,停止其间的级联故障以及提供回退选项,从而提高系统的整体弹性。本文讲述的是Feign配合Hystrix在服务不可达时进行简单容错降级处理。

1、首先都是一成不变的pom.xml引入依赖
 <!-- 添加feign支持  -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-feign</artifactId>
        </dependency>
        <!-- 添加对hystrix断路器的依赖-->
        <dependency>
            <groupId>com.netflix.hystrix</groupId>
            <artifactId>hystrix-core</artifactId>
            <version>1.5.6</version>
        </dependency>
2、zbook-web服务启动类文件添加Feign注解@EnableFeignClients
@SpringBootApplication
@EnableFeignClients
@EnableEurekaClient
public class ZbookWebApplication {
    public static void main(String[] args){
        SpringApplication.run(ZbookWebApplication.class,args);
    }
}
3、zbook-web服务创建Feign调用接口,这个接口对接的是另外一个服务的controller,我这里用的是restFulApi
@FeignClient(name = "zbook-service",fallback = IndexServiceHystrix.class)
public interface IndexService {
    @RequestMapping(value = "/indexServiceApi/indexService/{id}",method = RequestMethod.POST)
    String indexServiceApi(String params, @PathVariable("id") String id);
}

对应的另外一个服务是zbook-service,controller中的requestMapping就应该是下面这样

@RestController
@RequestMapping("/indexServiceApi")
public class IndexServiceApiController {
    @RequestMapping(value = "/indexService/1",method = RequestMethod.POST)
    public String indexService(@RequestBody String params){
        return "调用成功";
    }
}
4、zbook-web服务创建服务容错降级处理类,对应@FeignClient中的fallBack,当zbook-service服务不可用或者别的异常情况时,就会进入这个类进行容错降级处理
@Service
public class IndexServiceHystrix implements IndexService {
    @Override
    public String indexServiceApi(String params, String id) {
        return "IndexServiceHystrix 服务不可用";
    }
}
5、为了测试,就启动eureka注册中心以及zbook-web服务,不启动zbook-service服务,造成服务不可用的情况,下面我们在浏览器中输入地址请求zbook-web服务,结果如下,成功容错降级



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值