我是靠谱客的博主 丰富故事,最近开发中收集的这篇文章主要介绍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 后面的属性值是自定义的方法名。

最后

以上就是丰富故事为你收集整理的Hystrix微服务降级和熔断的全部内容,希望文章能够帮你解决Hystrix微服务降级和熔断所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部