spring cloud之Hystrix断路器(十)

一、博客背景

  在前面的博客里我们讲解了数据服务dataserver,访问服务feignserver,页面展示是通过feignserver服务调用dataserver来展示数据,那么问题来了,假如我的数据服务挂了,访问服务feignserver,访问http://127.0.0.1:8685/getdatas 就会出现下面的图片

显然,这样的提示信息是非常不友好的,所有本篇博客讲解断路器的一些简单使用。当被访问的微服务无法使用的时候,当前服务能够感知这个现象,并且提供一个备用的方案出来。所以本篇博客将继续对feignserver进行修改

二、修改pom文件

增加引入相关依赖

<!-- 引起断路器包依赖 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
        </dependency>

三、修改feign客户端

注解由原来的@FeignClient(value = "DATA-SERVER")
修改为@FeignClient(value = "DATA-SERVER",fallback = ClientFeignHystrix.class)。fallback指定ClientFeignHystrix降级类,这就表示,如果访问的 DATA-SERVER 不可用的话,就调用 ClientFeignHystrix来进行反馈信息。

package tp;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.GetMapping;

import java.util.List;

/**
 * @Package: com.tp
 * @ClassName: FeignClientServer
 * @Author: tanp
 * @Description: ${description}
 * @Date: 2020/7/20 16:59
 */
@Service
@FeignClient(value = "DATA-SERVER",fallback = ClientFeignHystrix.class)
public interface FeignClientServer {

    @GetMapping("/datas")
    public List<String> getDatas();

}

四、新增 ClientFeignHystrix

新增ClientFeignHystrix类实现FeignClientServer方法

package com.tp;

import org.springframework.stereotype.Component;

import java.util.Arrays;
import java.util.List;

/**
 * @Package: com.tp
 * @ClassName: ClientFeignHystrix
 * @Author: tanp
 * @Description: ${description}
 * @Date: 2020/7/22 15:27
 */
@Component
public class ClientFeignHystrix implements FeignClientServer{

    @Override
    public List<String> getDatas() {
        String[] arr = {"nothing","nothing","nothing"};
        return Arrays.asList(arr);
    }
}

五、修改application.yml文件

在配置文件里开启断路器

feign.hystrix.enabled: true

六、访问查看结果

访问http://127.0.0.1:8685/getdatas,可以看到即便数据服务dataserver服务挂掉了,页面上也展示自定义的数据页面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值