Spring Cloud 断路器 Hystrix
在微服务架构中,通常存在多个服务调用层。微服务之间通过网络进行通信,从而支撑起整个应用,为了保证高可用,单个服务通常也会集群部署。但由于网络原因或者自身原因,服务并不能保证100% 可用。而服务间的依赖关系,会导致故障传播,即服务提供者的不可用会导致消费者不可用,并把不可用逐渐放大,这就是雪崩效应。 这里就引入了请求超时机制和断路器模式 Hystrix 简介 Hystrix 是 Netflix 的开源组件,是一个用于实现超时机制和断路器模式的工具类库。在微服务架构中,通常存在多个服务调用层。较低级别的服务中的服务故障可能导致级联故障,一直到达用户。当对特定服务的调用超过一个阈值(默认是 10秒/20个请求/故障百分比 > 50%),断路器将打开并且不会进行调用。在出现错误和开路的情况下,开发人员可以提供一个回退 断路打开后可以防止级联故障。回退可以是另一个受 Hystrix 保护的调用、静态数据或合理的空值。 Ribbon 中整合 Hystrix 我们在 Spring Cloud 服务消费(Ribbon) 中的例子基础上添加 Hystrix 准备工作 eureka-server 作为服务注册中心 product-service 作为服务提供者 复制工程 order-service-ribbon 为 order-service-ribbon-hystrix 来整合 Hystrix