1. Hystrix
在高并发领域,在分布式的系统中,可能因为一个小小的功能抗不主压力,宕机了,导致其他服务也随着宕机,所以在SpringCloud中采用Hystrix进行处理
简介
Hystrix 即熔断器。
主页:https://github.com/Netflix/Hystrix/
2.手动实践
1.首先要引入Hystrix依赖。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
2.开启熔断
3.编写消费者
添加一个用来访问的user服务的DAO,并且声明一个失败时的回滚处理函数
@HystrixCommand(fallbackMethod = "queryUserByIdFallback")
public User queryUserById(Long id){
// 为了演示超时现象,我们在这里然线程休眠,时间随机 0~2000毫秒
Thread.sleep(new Random().nextInt(2000));
User user = new User();
user.setId(id);
user.setName("张三");
return user;
}
public User queryUserByIdFallback(Long id){
User user = new User();
user.setId(id);
user.setName("用户信息查询出现异常!");
return user;
}
@HystrixCommand(fallbackMethod="queryUserByIdFallback")`:
声明一个失败回滚处理函数queryUserByIdFallback,当queryUserById执行超时(默认是1000毫秒),就会执行queryUserByIdFallback,返回错误提示