首页 /  技术专区  /  SpringCloud 宽屏模式 >

Hystrix:服务降级

服务降级是当服务器压力剧增的情况下,根据当前业务情况及流量对一些服务和页面有策略的降级,以此释放服务器资源以保证核心任务的正常运行。


代码部分:

1.在springcloud-api项目的com.allen.springcloud.service包下面新建编写DeptClientServiceFallbackFactory。

image.png

package com.allen.springcloud.service;

import com.allen.springcloud.pojo.Dept;
import feign.hystrix.FallbackFactory;
import org.springframework.stereotype.Component;

import java.util.List;

//降级
@Component
public class DeptClientServiceFallbackFactory implements FallbackFactory {

    @Override
    public DeptClientService create(Throwable throwable) {
        return new DeptClientService() {
            @Override
            public Dept queryById(Long id) {
                return new Dept()
                        .setDeptno(id)
                        .setDname("id=>" + id + "没有对应的信息,客户端提供了降级的信息,这个服务现在已经被关闭")
                        .setDb_source("没有数据");
            }

            @Override
            public List<Dept> queryAll() {
                return null;
            }

            @Override
            public boolean addDept(Dept dept) {
                return false;
            }
        };
    }
}

2.修改DeptClientService接口的注解。

image.png3.修改springcloud-consumer-dept-feign配置文件application.yml,开启服务降级。

image.png

#开启降级feign.hystrix
feign:
  hystrix:
    enabled: true

4.依次启动服务,测试。

image.png

首先是开启8001端口的服务,进行接口测试,是可以正常拿到数据的。

image.png

这时候我们关闭8001服务,再次调用接口,服务已经被降级处理了。

image.png




头像
0/200
图片验证码