Hystrix微服务降级和熔断

1.微服务降级一般是在客户端调用微服务的时候,出现了服务雪崩的情况,所谓的服务雪崩就是在同一个tomcat容器中,接受了高并发的访问,而导致的响应超时,而在整个微服务的项目中,出现了一个微服务的响应超时而导致的服务雪崩,就会使整个系统崩盘,那么我们的用户在发送请求的时候,返回的响应超时的提示信息肯定是行不通的,这时候就需要我们进行服务降级,从而给用户返回良好的提示信息,减轻服务器的访问压力

Hystrix的使用
1.导入依赖

org.springframework.cloud
spring-cloud-starter-netflix-hystrix

2.在springboot的启动类上添加注解

package com.xzf;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication
@EnableEurekaClient  //开启eureka客户端发现
@EnableCircuitBreaker//开启熔断
@EnableFeignClients//开启feign支持
public class ConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class);
    }
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

3.在消费者的一方的controller上添加注解@HystrixCommand,其实Hystrix的默认超时时间是1秒钟,可以在application.yml中统一配置超时时间,也可以对每一个controller单独配置超时时间,通一配置超时时间的配置如下:

#设置hystrix超时时间
hystrix:
  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 2000
  @HystrixCommand(fallbackMethod = "aaa",commandProperties = {
            @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds",value = "3000")
    })

在controller中也可以统一配置服务降级的方法,只需要在controller类上添加@DefaultProperties(defaultFallback = “defaultFallback”)注解即可,defaultFallback 后面的属性值是自定义的方法名。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值