SpringBoot 整合降级利器Hystrix

前言

最近因为流量的激增给数据库跟redis 造成了一些压力,mysql、redis也偶尔出现慢查询,服务出了假死,大量线程处于Waiting状态,都在等待某个方法执行完成。

分析原因

  • mysql性能出现了瓶颈
  • 请求第三方的网络有延迟,响应很慢,拖垮了服务

解决方案 使用Hystrix降级

服务降级简单就是服务A(也可以是方法)调用(本地调用或者远程调用)服务B,B发生了异常,或者超时严重的时候,大量请求进来就会导致服务A假死 ,系统来不及处理了,如果服务B对于A来说 是可以失败的 。比如商品信息的时候商品的标签服务队购买下单是不受影响的。我们就可以在标签服务异常或者超时的时候 不设置标签的信息 。从而保护主要业务的正常流程。

第一步在POM文件中引入Hystrix依赖

 <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
     <version>2.1.3.RELEASE</version>
 </dependency>

第二步使用@EnableHystrix 注解开启降级

@EnableHystrix
@SpringBootApplication
public class Application{
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

第三步在被调用方法上添加注解

    @HystrixCommand(commandKey = "processVideoDataCore",
            commandProperties = {
                    @HystrixProperty(name = "execution.timeout.enabled", value = "true"),
                    @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "1500"),
            },
            fallbackMethod = "fullBackProcessVideoDataCore"
    )

第四步实现异常回调方法,要求回调方法的传参数跟被调用的方法一直名称为注解 fallbackMethod = “fullBackProcessVideoDataCore” 属性所制定的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值