断路器解决的问题:你在访问一台服务器的时候,那台服务器如果出现某些原因不能及时响应,如果一直在等待它响应那么会很耗费资源,因为线程没有被释放,一直在堆积,请求越来越多,最终影响系统正常运行。
熔断机制:保证服务器上的线程可以及时释放,为了不出现雪崩,暂停对问题服务器的调用,丢卒保车之意。
实现断路器:
1.添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
2.feign远程调用里的feign接口定义了将要被远程访问的方法,我们首先定义该接口实现类,这个实现类实现这个抽象方法,定义了返回结果,意思是如果消费者因为连接不上生产者服务器而调用不到生产者方法,那么我这个实现类的方法的返回值将返回给客户端,做一个响应处理。feign实现类要放到spring容器中。
3.feign接口类注解@FeignClient(name=“red-provider”,fallback=feign实现类.class)
4.配置文件开启服务熔断
feign:
hystrix:
enabled: true #打开feign调用服务熔断
5.启动类+注解@EnableHystrix //启动了熔断机制 意为启动熔断机制
6.测试。