Hystrix服务降级:
1,
设置服务提供者睡眠两秒
public User queryById(Long id) {
try {
Thread.sleep(2000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
return userMapper.selectByPrimaryKey(id);
}
2,
服务消费者引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix- hystrix</artifactId>
</dependency>
在启动类上加上注解@SpringCloudApplication(相当于@EnableCircuitBreaker,@EnableDiscoveryClient,@SpringBootApplication)
3,
消费者配置请求失败方法
@DefaultProperties(defaultFallback ="queryByIdFallback")
public String queryByIdFallback() {
return "服务器拥挤!";
}
4,
在方法上加入请求失败时长(默认是一秒),
@HystrixCommand(
commandProperties ={
@HystrixProperty(
name = "execution.isolation.thread.timeoutInMilliseconds",value = "3000"
)
}
)
5,
服务提供者已经设置睡眠两秒,采用默认失败时长,则页面会返回“服务器拥挤!”
失败时长设置成3秒,则页面能正常显示
6,
配置全局HystrixProperty,可以在yml里配置