发布时间:2024-11-03 08:01
本章课程学习目标:
(1)Spring Cloud微服务架构
(2)Hystrix熔断器组件的学习
(3)SHOP商城微服务Hystrix熔断器组件代码实战
在微服务架构中通常会有多个服务层调用,基础服务的故障可能会导致级联故障,进而造成整个系统不可用的情况,这种现象被称为服务雪崩效应。服务雪崩效应是一种因“服务提供者”的不可用导致“服务消费者”的不可用,并将不可用逐渐放大的过程。
如果下图所示:A作为服务提供者,B为A的服务消费者,C和D是B的服务消者A不可用引起了B的不可用,并将不可用像滚雪球一样放大到C和D时,雪崩效应就形成了。
如何避免产生这种雪崩效应呢?我们可以使用Hystrix来实现熔断器。
Hystrix [hɪst’rɪks]的中文含义是豪猪, 因其背上长满了刺,而拥有自我保护能力。
Hystrix 能使你的系统在出现依赖服务失效的时候,通过隔离系统所依赖的服务,防止服务级联失败,同时提供失败回退机制,更优雅地应对失效,并使你的系统能更快地从异常中恢复。
如果代码看的不是很清楚,请从spring Cloud微服务实战项目(一)开始看SpringCloud之服务发现组件 Eureka与Feign组件(二)
Feign 本身支持Hystrix,不需要额外引入依赖。
1. package com.springcloud.order.client;
2. import entity.Result;
3. import entity.StatusCode;
4. import org.springframework.stereotype.Component;
5. import java.util.Map;
6. @Component
7. public class ProductClientImpl implements ProductClient {
8.
9. @Override
10. public Result findSearch(Map searchMap) {
11. return new Result(false, StatusCode.ERROR,"抢购太火爆了--排队中");
12. }
13. }
@FeignClient(value = "shop-product",fallback = ProductClientImpl.class)
(1)启动shop_eureka注册中心微服务
(2)启动shop_product商品微服务
(3)启动shop_order订单微服务
(4)正常测试情况:商品微服务可用
(5)停止商品微服务,模拟商品微服务宕机:则创建订单服务继续可以走熔断器逻辑。
4个人说明
经验是由一点一点积累的,思维也是由一天一天训练出来的。
谢谢大家的阅读,原创不易,如果你认为文章对你有所帮助,就点个赞感谢大家支持,你的点赞是我持续写作的动力。