错误解码器不工作。
我有2个微服务M1和M2。M1使用带有自定义ErrorDecoder的假客户端与M2通信。然后,如果M2不可用,我添加了Hystrix用于断路。
假冒客户:
@FeignClient(name = "M2", fallback = M2Client.Fallback.class)
public interface M2Client{
@GetMapping("/api/v1/users/{id}")
UserDTO getUserById(@PathVariable long id);
//other endpoints
@Component
class Fallback implements M2Client{
@Override
public UserDTO getUserById(long id) {
throw new MicroserviceException("Service is unavailable");
}
}
错误解码器:
@Component
public class CustomErrorDecoder implements ErrorDecoder {
@Override
public Exception decode(String s, Response response) {
//...
}
}
但自定义ErrorDecoder停止工作,并且M2始终抛出错误,即调用回退
1条答案
按热度按时间fykwrbwg1#
好吧,据我所知,有以下处理方式:
1.调用ErrorDecoder发生异常后
所以我把fallback改为fallback工厂,只是在Fallback类中更远的地方抛出异常。