在Hystrix做熔断的时候,开始用的是FallBack,后来为了找出为啥exception,然后就用了FallBackFactory。
但是奇怪的是,一起动就抛出异常,真的是百思不得骑姐,错了其解。
后来在github上找到了解答:
https://github.com/spring-cloud/spring-cloud-netflix/issues/1471
正确的打日志的策略:
/*** @author tuhooo*/ @Component public class RemoteDemoServiceHystrixFallBackFactory implements FallbackFactory<RemoteDemoService> {private final Logger logger = LoggerFactory.getLogger(SensetimeServiceHystrixFallBackFactory.class);@Overridepublic RemoteDemoService create(Throwable throwable) {// 不要在这里打日志return new RemoteDemoService() {@Overridepublic Result getFaceAttributes(String name) {// 在这里打日志 }};} }
还有代码要写,我就不深究原因了,反正我也只是用一下Spring Cloud。