SpringCloud Hystrix 断路器

雪崩效应

在微服务架构中通常会有多个服务层调用,大量的微服务通过网络进行通信,从而支撑起整个系统。各个微服务之间也难免存在大量的依赖关系。然而任何服务都不是100%可用的,网络往往也是脆弱的,所以难免有些请求会失败。基础服务的故障导致级联故障,进而造成了整个系统的不可用,这种现象被称为服务雪崩效应。服务雪崩效应描述的是一种因服务提供者的不可用导致服务消费者的不可用,并将不可用逐渐放大的过程。

Netflix Hystrix 断路器

Netflix的Hystrix类库实现了断路器模式,在microservice架构中有多个层的服务调用。一个低水平的服务群中一个服务挂掉会给用户导致级联失效。调用一个特定的服务达到一定阈值(在Hystrix里默认是5秒内20个失败),断路由开启并且调用没有成功的。开发人员能够提供错误原因和开启一个断路由回调。

这里写图片描述

如何使用Hystrix

1、添加Hystrix依赖

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-hystrix</artifactId>
        </dependency>

2、在启动类上添加注解:@EnableCircuitBreaker

这里写图片描述

3、在controller控制器类上使用注解:@HystrixCommand

    @RequestMapping(value = "saveOrUpdateMenu", method = RequestMethod.POST)
    @ResponseBody
    @HystrixCommand(fallbackMethod = "saveOrUpdateMenuFallback")
    public Boolean saveOrUpdateMenu(MenuModel menuModel){

        ResponseResult responseResult = menuClient.saveOrUpdateMenu(menuModel);

        System.out.println(JSON.toJSONString(responseResult));

        return true;
    }


    public Boolean saveOrUpdateMenuFallback(MenuModel menuModel){
        System.out.println("服务不可用。。");
        return false;
    }

这里写图片描述

传播安全上下文或使用Spring Scopes

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值