雪崩效应:微服务架构中,服务都是多层应用,一层调一层,如果基础层出现问题,则会影响上一层,以致于级联效应进而影响整个系统的不可用,这就是雪崩效应
而熔断器则是来处理此类情况发生
熔断器可以实现快速失败,如果在一段时间内检测到许多类似错误,则他就会强制调用失败,返回失败信息,不在让请求访问服务器。从而防止了程序不断尝试执行可能失败的操作。熔断器也可以判断程序是否已经修正,如果已经修正则会再次尝试调用操作。
熔断器模式就像是那些容易导致错误的操作的一种代理。这种代理能够记录最近调用发生错误的次数,然后决定使用允许操作继续,或者立即返回错误。
在Spring Cloud框架里,熔断机制通过Hystrix实现。Hystrix会监控微服务间调用的状况,当失败的调用到一定阈值,缺省是5秒内20次调用失败,就会启动熔断机制。熔断机制的注解是@HystrixCommand,Hystrix会找有这个注解的方法,并将这类方法关联到和熔断器连在一起的代理上。当前,@HystrixCommand仅当类的注解为@Service或@Component时才会发挥作用。
application配置文件中开启熔断机制
feign.hystrix.enabled=true