Spring Cloud Hystrix入门和入门和Hystrix命令原理分析命令原理分析
主要介绍了Spring Cloud Hystrix入门和Hystrix命令原理分析,小编觉得挺不错的,现在分享给大家,也给大家
做个参考。一起跟随小编过来看看吧
断路由器模式断路由器模式
在分布式架构中,当某个服务单元发生故障之后,通过断路由器的故障监控(类似熔断保险丝),向调用方返回一个错误响应,
而不是长时间的等待。这样就不会使得线程因调用故障服务被长时间占用不释放,避免了故障在分布式系统中的蔓延。
Spring Cloud Hystrix针对上述问题实现了断路由器、线程隔离等一系列服务保护功能。它是基于Netflix Hystrix实现,该框架
的目标在于通过控制那些访问远程系统、服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。
Hystrix具备服务降级、服务熔断、线程和信号隔离、请求缓存、请求合并以及服务监控等强大功能。
快速入门快速入门
构建一个如下架构图的服务调用关系
分析上述架构图,主要有以下几项工作:
eureka-server工程: 服务注册中心,端口1111hello-service工程:
HELLO-SERVICE服务单元,启动两个实例,端口分别为8081和8082
ribbon-consumer工程: 使用Ribbon实现的服务消费者,端口9000
修改修改ribbon-consumer模块模块
修改修改pom.xml
首先在pom.xml文件中增加spring-cloud-starter-hystrix依赖
开启断路由器功能开启断路由器功能
在ribbon-consumer主类中使用@EnableCircuitBreaker注解开启断路由器功能,在这里还有一个小技巧,可以使用
@SpringCloudApplicationd代替@EnableCircuitBreaker、@EnableEurekaClient、@SpringBootApplication这三个注解。
改造服务消费方式改造服务消费方式
改造ribbon-consumer中的HelloService,如下
package cn.sh.ribbon.service;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;