您现在的位置是:主页 > news > 做网站合肥/如何制作一个网页

做网站合肥/如何制作一个网页

admin2025/6/6 15:11:34news

简介做网站合肥,如何制作一个网页,举报网站建设情况总结,怎么做幼儿园网站在学习cloud的时候,教程上面的例子是使用ribbon的,我觉得生产中一般肯定使用feign 的,所以百度了一下 feign使用hystrix的用法。 了解发现,feign本身就自带了hystrix功能了,不过我用的是1.5xspringboot版本Dalston版本…

做网站合肥,如何制作一个网页,举报网站建设情况总结,怎么做幼儿园网站在学习cloud的时候,教程上面的例子是使用ribbon的,我觉得生产中一般肯定使用feign 的,所以百度了一下 feign使用hystrix的用法。 了解发现,feign本身就自带了hystrix功能了,不过我用的是1.5xspringboot版本Dalston版本…

在学习cloud的时候,教程上面的例子是使用ribbon的,我觉得生产中一般肯定使用feign 的,所以百度了一下 feign使用hystrix的用法。

 

了解发现,feign本身就自带了hystrix功能了,不过我用的是1.5xspringboot版本+Dalston版本的cloud,所以需要配置打开feign的hystrix功能,直接上代码

 

在配置文件中增加一条配置

feign.hystrix.enabled=true


@RestController
public class DcController {@AutowiredEurekaClient eurekaClient;@GetMapping("/consumer")public String dc(){User user = new User();user.setName("mck1");user.setAge(1);return eurekaClient.dc("mck");}}@FeignClient(value = "eureka-client",fallback = FallBack.class)
public interface EurekaClient {@GetMapping("/dc")public String dc(@RequestParam("user") String user);}@Component
public class FallBack implements EurekaClient {@Overridepublic String dc(String user) {return "服务熔断了,哈哈哈哈";}
}

经过测试,发现在关掉服务提供者的时候 ,确实进入了fallback。

 

另外,在进行学习的时候,一开始启动的时候发现项目报错,百度了那个错误,增加了一个配置

 

@Component
public class FeignBeanFactoryPostProcessor implements BeanFactoryPostProcessor {@Overridepublic void postProcessBeanFactory(ConfigurableListableBeanFactory configurableListableBeanFactory) throws BeansException {if (containsBeanDefinition(configurableListableBeanFactory, "feignContext", "eurekaAutoServiceRegistration")) {BeanDefinition bd = configurableListableBeanFactory.getBeanDefinition("feignContext");bd.setDependsOn("eurekaAutoServiceRegistration");}}private boolean containsBeanDefinition(ConfigurableListableBeanFactory beanFactory, String... beans) {return Arrays.stream(beans).allMatch(b -> beanFactory.containsBeanDefinition(b));}}

就启动成功了

 

 

那么问题来了,开启了hystrix之后,那就是强制的了, 你不想熔断都没办法,必须配置fallback,那么有的人就说不配置不行吗?当然可以,改为配置confiuration就行了 

 

上代码

 

@Configuration
public class FeignDisableHystrixConfiguration {@Bean@Scope("prototype")public Feign.Builder feignBuilder(){return Feign.builder();}
}
@FeignClient(value = "eureka-client",configuration = FeignDisableHystrixConfiguration.class)
public interface EurekaClient {@GetMapping("/dc")public String dc(@RequestParam("user") String user);}

这样,就不会熔断了,该报错报错,该超时超时!

 

 

但是我遇到了一个问题,写了这个配置类之后,即使客户端接口不配置configuration = FeignDisableHystrixConfihguration 依然不走fallback了,就像全局禁用一样,目前还没发现原因

转载于:https://www.cnblogs.com/changeCode/p/11173309.html