关于zuul,feign和hystrix的整合

1. feign和hystrix

feign整合出错回退的功能,FeignClient的注解中,加入fallbackFactory = UserServiceFallback.class的设置,其中UserServiceFallBack需要实现FallbackFactory<UserServFeign>的接口。

在UserServiceFallBack中会接受一个Throwable的对象,在服务出错时可以利用他,分辨出错误类型,并且给予调用者错误信息。所以fiegn整合回退功能,是可以处理程序异常的


2. zuul整合服务回退功能

在给zuul整合回退功能时,只要类实现ZuulFallbackProvider接口,并且注册bean即可。

不过需要注意的时,这个回退只有服务掉线或者超时的情况下才会触发(Camden.SR4版本测试是这样),如果服务程序出现异常,此回退程序是不能处理的,异常会直接返回给调用者,比如页面。

zuul中异常的处理,主要是利用error过滤器,这个之后再详细学习。


3. 异常的处理流程

从最低的程序报出异常,到最后处理掉,有很多地方可以处理,在此列举下目前知道的。

1. 程序的try-catch

2. spring的统一异常处理

3. springboot的/error重写

4. feign的回退处理(超时或者出错都可以处理)

5. 如果不适用feign,hystrix的回退处理

6. springCloud中zuul过滤器异常,error过滤器

7. springCloud中zuul为单个服务提供的回退处理


猜你喜欢

转载自blog.csdn.net/wangzhanzheng/article/details/80432263
今日推荐