1. 程式人生 > 實用技巧 >java.lang.IllegalStateException: No fallbackFactory instance of type class

java.lang.IllegalStateException: No fallbackFactory instance of type class

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); 21
22 }

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 }