php服务降级方案,SpringCloud 服务降级

业务说明:假设银行有3个窗口A,B,C,每个窗口提供不同的业务,现在A窗口的服务人员,人手不够急需从C或者B窗口调人处理业务,C或者B窗口挂起暂停服务的牌子

步骤一:修改SpringCloud -api工程,创建一个新的类实现FallBackFactory接口package com.gcxzflgl.springCloud.service;

import java.util.List;

import org.springframework.stereotype.Component;

import com.gcxzflgl.springCloud.entity.Dept;

import feign.hystrix.FallbackFactory;

@Component // 不要忘记添加

public class DeptClientServiceFallbackFactory implements FallbackFactory

{

@Override

public DeptClientService create(Throwable throwable)

{

return new DeptClientService() {

@Override

public Dept get(long id)

{

Dept dept = new Dept();

dept.setDeptno(id);

dept.setDname("该ID:" + id + "没有没有对应的信息,Consumer客户端提供的降级信息,此刻服务Provider已经关闭");

dept.setDb_source("no this database in MySQL");

return dept;

}

@Override

public List list()

{

return null;

}

@Override

public boolean add(Dept dept)

{

return false;

}

};

}

}package com.gcxzflgl.springCloud.service;

import java.util.List;

import org.springframework.cloud.netflix.feign.FeignClient;

import org.springframework.web.bind.annotation.PathVariable;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import com.gcxzflgl.springCloud.entity.Dept;

//@FeignClient(value = "MICROSERVICECLOUD-DEPT")

@FeignClient(value = "MICROSERVICECLOUD-DEPT",fallbackFactory=DeptClientServiceFallbackFactory.class)

public interface DeptClientService

{

@RequestMapping(value = "/dept/get/{id}", method = RequestMethod.GET)

public Dept get(@PathVariable("id") long id);

@RequestMapping(value = "/dept/list", method = RequestMethod.GET)

public List list();

@RequestMapping(value = "/dept/add", method = RequestMethod.POST)

public boolean add(Dept dept);

}

这两个类说明,如果发生任何异常,进入全局断路器里根据错误返回不同的提示

然后,mvn clean->mvn install 打包成jar,供其他模块调用

步骤二:修改feign工程applcation.yml,添加如下feign:

hystrix:

enabled: true

步骤三:启动7001,7002,7003三个Eureka,启动provider-dept-8001,再启动feign,正常访问localhost/consumer/dept/get/1能正常返回数据,如果现在关闭8001端口也就是C或者B窗口提示如下:

此时服务已经down掉,但做了降级处理,让客户端在服务端不可用时也会获得提示信息而不会挂起服务器!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值