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 }    

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM