本文主要讲了
- 使用Hystix实现服务降级
- Hystix服务熔断
- 使用Feign包装请求路径
- Zuul网关的使用
1、使用Hystix实现服务降级
- 添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
-
添加注解 @EnableCircuitBreaker
这个时候,因为一个springcloud消费方一般都会有下面的三个注解,因此可以使用一个代替 即@SpringCloudApplication
@SpringBootApplication
@EnableDiscoveryClient
@EnableCircuitBreaker
-
服务降级方法,这个方法可以写在方法上,也可以写在类上面
(一),降级方法写在方法上面,这个时候降级方法,必须降级方法,必须跟方法的返回值和参数一致
@RequestMapping("/{id}")
@HystrixCommand(fallbackMethod = "defaultMethod")
public User queryById(@PathVariable("id") long id) {
}
public User defaultMethod(long id) {
User user = new User();
user.setUserName("服务器拥挤");
user.setUserCode("4525");
user.setDetail("hahahahhaha");
return user;
}
(二)降级方法写在类上
在类上面添加注解
@DefaultProperties(defaultFallback = "defaultMethod")
在方法添加注解
@HystrixCommand
编写降级方法,降级方法不能有任何参数,但是返回值必须与上面的方法返回值一样
public User defaultMethod() {
User user = new User();
user.se