SpringCloud feign微服务调用之间的异常处理

如何优雅地处理微服务间调用的异常

现在微服务架构盛行,其中spring cloud方案就很具有代表。
那么在微服务之间进行调用,如果被调用的服务挂了,调用方如何感知呢?
一、加上hystrix熔断
在定义feignClient的地方指定熔断,如下图
熔断
当被调用服务不可用或者被调用方发生错误的时候,会触发熔断,但是,如果被调用方抛出异常,调用方怎么知道究竟是出了什么问题呢?
那,这就出现了

二、feign全局异常处理
我们不得不提到feign提供的一个接口叫做ErrorDecoder, 是用来处理feign异常的,有一个方法需要实现
public Exception decode(String s, Response response)
如下图:
自定义异常处理
在这里插入图片描述

这样就会替换它默认的feign异常处理,这样就可以捕捉全局的异常了,但是又带来一个新的问题,如果使用这个ErrorDecoder,得关闭熔断,否者这里抛出的FeignBadReq

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值