在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。