@FeignClient(value = "eureka-client",configuration = FeignConfig.class,fallback = FallBack.class)
public interface FeignHystrixInter {
//使用 Spring MVC 的注解来绑定具体该服务提供的 REST 接口
@GetMapping(value = "/HiController/hi/{name}")
String sayHiFromEurekaClient(@PathVariable(value = "name") String name);
}
@Configuration
public class FeignConfig {
public Retryer feignRetryer(){
//Feign 默认的配置在请求失败后,重试次数为0,即不重试。
//重试间隔 为100毫秒,最大重试时间为1秒,重试次数为5次
//return new Retryer.Default();
return new Retryer.Default(100,SECONDS.toMillis(1),5);
}
}
@Component //注入Spring 容器中
public class FallBack implements FeignHystrixInter {
@Override
//写处理熔断器的具体逻辑
public String sayHiFromEurekaClient(String name) {
return "哦,面对疾风吧,哈撒给";
}
}
@SpringBootApplication
//开启服务注册于发现
@EnableDiscoveryClient
//开启 Feign Client 功能
@EnableFeignClients
public class EurekaFeignHystrixClientApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaFeignHystrixClientApplication.class, args);
}
}
启动 eureka-serve,eureka-client (8762,8763 两个端口),eureka-feign-hystrix-client , 浏览器访问 http://localhost:8761/
在浏览器上 输入 :http://localhost:8767/FeignHystrixController/hi/java,得到结果如下:
关掉eureka-client (8762,8763 两个端口 )服务,结果如下: