springcloud集成Hystrix
springcloud组件Hystrix 有容错功能;
当服务A调用服务B时,服务B由于某种原因调不通,这个时候为了给页面一个返回值或者要需要对具体的错误进行处理,会用Hystrix的容错功能;
1、首先在服务A的yml里面添加Feign对Hystrix 的支持
feign:
hystrix:
enabled: true #feign配合hystrix 使用,从而开启Feign对Hystrix的支持
2、定义一个类,这个类专门写具体的回退方法,注意,这个类需要实现具体的业务的FeignClient接口(也就是下图中的ProviderServiceProvider,这个类是调用服务B的一个中转接口类)
3、上述方式不能对服务B的异常进行捕获,换句话说,就是服务B为什么不能用,异常信息服务A这块不知道。于是可以用如下方式来对服务B的异常进行捕获。定义一个FeignClientFallbackFactory类,这个类里面对异常信息进行捕获,并且还可以处理步骤2的fallback回滚方法。注意:自定义的FeignClientFallbackFactory 类要实现FallbackFactory接口,并且重写其里面的create方法。