java.lang.IllegalStateException: No fallbackFactory instance of type class
阿新 • • 發佈:2020-08-20
1,微服務之間是通過Fegin進行呼叫,建立了一個呼叫介面,當開啟熔斷機制之後,會造成無法啟動和編譯
2,託底函式問題就出現在託底函式上面
1 @FeignClient(name = "service-vod",fallback = VodFileDegradeFeignClient.class) 2 @Component 3 public interface VodClient { 4 5 /** 6 * 根據視訊id刪除網路視訊,(遠端呼叫) 7 * @param videoId 8 * @return 9 */ 10 @DeleteMapping("/eduvod/video/delete/{videoId}")11 R removeVideo(@PathVariable("videoId") String videoId); 12 13 14 /** 15 * 根據id列表刪除網路視訊,(遠端呼叫) 16 * @param videoIdList 17 * @return 18 */ 19 @DeleteMapping("/eduvod/video/deleteBatch") 20 R deleteBatch(@RequestParam("videoIdList") List<String> videoIdList); 2122 }
3,報錯情況,原因是找不到託底函式
1 Caused by: java.lang.IllegalStateException: No fallback instance of type class com.jouyo.eduservice.client.VodFileDegradeFeignClient found for feign client service-vod 2 at org.springframework.cloud.openfeign.HystrixTargeter.getFromContext(HystrixTargeter.java:81) 3 at org.springframework.cloud.openfeign.HystrixTargeter.targetWithFallback(HystrixTargeter.java:72)4 at org.springframework.cloud.openfeign.HystrixTargeter.target(HystrixTargeter.java:49) 5 at org.springframework.cloud.openfeign.FeignClientFactoryBean.loadBalance(FeignClientFactoryBean.java:253) 6 at org.springframework.cloud.openfeign.FeignClientFactoryBean.getTarget(FeignClientFactoryBean.java:282) 7 at org.springframework.cloud.openfeign.FeignClientFactoryBean.getObject(FeignClientFactoryBean.java:262) 8 at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:171) 9 ... 59 common frames omitted
4,解決方案,在你的遠端呼叫實現類上加上註解
1 @Service 2 public class VodFileDegradeFeignClient implements VodClient { 3 //********* 4 }