当有服务调用的时候,才会出现服务雪崩,所以 Hystrix 常和 OpenFeign,Ribbon 一起出现
1 在 OpenFeign 中使用 Hystrix(重点)
1.1 启动 provider-order-service(提供者)
1.1.1 先创建 provider-order-service,选择依赖
1.1.2 provider-order-service 修改配置文件
server:
port: 8082
spring:
application:
name: provider-order-service
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka
instance:
instance-id: ${spring.application.name}:${server.port}
prefer-ip-address: true
1.1.3 provider-order-service 修改启动类增加一个访问接口
@RestController
public class OrderController {
/**
* 订单服务下单接口
*
* @return
*/
@GetMapping("doOrder")
public String doOrder() {
System.out.println("有用户来下单了");
return "下单成功";
}
}
1.2 修改 consumer-user-service(消费者)
1.2.1 创建实现类 -> OrderServiceHystrix 实现 ->接口OrderServiceFeign(代替方案)
@Component
public class OrderServiceHystrix implements OrderServiceFeign {
@Override
public String doOrder() {
System.out.println("调用下单服务失败,我走 hystrix 了");
return "我是 hystrix 的 doOrder,说明下单失败了";
}
......省略其他的实现方法
}
1.2.2 修改 OrderServiceFeign接口 增加一个 fallback
@FeignClient(value = "provider-order-service", fallback =OrderServiceHystrix.class)
1.2.3 修改 yml 配置文件
feign:
hystrix:
enabled: true #开启断路器的使用