此feign搭建在consumer客户端,,当服务端接口不可用时,进行服务降级处理。
1.编写服务降级处理程序和feign配置类
@Component
public class IDeptClientServiceFallbackFactory implements FallbackFactory<IDeptClientService>{
//编辑IDeptClientService接口调用失败处理程序
}
----------
@Configuration
public class FeignConfig {
@Bean
public BasicAuthRequestInterceptor getBasicAuthRequestInterceptor(){
System.out.println("***加载***");
return new BasicAuthRequestInterceptor("ftest","ftest");
}
@Bean
public Logger.Level getFeignLoggerLevel(){
return Logger.Level.FULL;
}
}
2.Feign的接口中添加fallbackFactory
@FeignClient(value = "SPRING-PROJECT-PROVIDER",configuration = FeignConfig.class,
fallbackFactory = IDeptClientServiceFallbackFactory.class)
public interface IDeptClientService {
@RequestMapping(value = "/dept/get/{id}",method = RequestMethod.GET)
public Object get(@PathVariable("id") long id);
@RequestMapping(value = "/dept/list",method = RequestMethod.GET)
public Object list();
@RequestMapping(value = "/dept/add",method = RequestMethod.POST)
public boolean add(Dept vo);
}
3.在consumer启动类中添加
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients(basePackages = {"cn.ftest.service"})
public class DeptConsumerFeignStartApplication {
public static void main(String[] arg){
SpringApplication.run(DeptConsumerFeignStartApplication.class,arg);
}
}
---------
application.yml文件添加开启hystrix开关
feign:
hystrix:
enabled: true