SpringCloud-Hystrix熔断降级和监控

写得比较全的可以参考这篇文章:微服务------Hystrix的使用_hystrix使用-CSDN博客

复制代码
Hystrix的主要功能包括:
  1. 熔断器(Circuit Breaker):通过监控对远程服务的调用,当远程服务出现问题导致失败率过高时,Hystrix可以自动打开熔断器,阻止继续向该服务发送请求,从而避免雪崩效应。

  2. 降级(Fallback):当某个服务不可用时,Hystrix可以根据事先定义好的降级逻辑,返回一个默认值或错误信息,保证服务调用方能够得到响应,避免将问题传递给更上层的调用者。

  3. 隔离(Isolation):通过线程池的隔离,Hystrix可以限制对某个服务的并发访问量,并且对每个服务实例都有一个独立的线程池,确保一个异常不会影响整个系统的正常运行。

  4. 实时指标和监控:Hystrix可以提供实时的指标和监控数据,帮助开发人员了解服务调用的情况,包括成功率、失败率、响应时间等,从而及时发现问题并进行处理。

常规使用-搭配Feign:

1.在Feign客户端接口上添加 ​@FeignClient​注解时,指定 ​fallback​参数为一个实现了熔断逻辑的类:

复制代码
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;

@FeignClient(name = "demo-service", path = "/api", fallback = DemoFeignClientFallback.class)
public interface DemoFeignClient {
    
    @GetMapping("/hello")
    String sayHello();
}

2.创建一个熔断降级的类 ​DemoFeignClientFallback​实现 ​DemoFeignClient​接口,并在熔断时返回一个默认值或者错误信息

复制代码
import org.springframework.stereotype.Component;

@Component
public class DemoFeignClientFallback implements DemoFeignClient {

    @Override
    public String sayHello() {
        return "Service Unavailable";
    }
}

3.在应用程序的主类中加上 ​@EnableHystrix​注解启用Hystrix功能:

复制代码
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.cloud.netflix.hystrix.EnableHystrix;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnableFeignClients
@EnableHystrix
public class ConsumerServiceApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConsumerServiceApplication.class, args);
    }
}

主要作用:热门API限流、API统一异常处理、监控API接口情况

查看监控的地址:​http://localhost:port/actuator/hystrix.stream​ ,需要安装Hystrix Dashboard 监控

相关推荐
6190083366 分钟前
linux 安装jdk
java·linux·运维
懂得节能嘛.9 分钟前
【动态配置中心】Java+Redis构建动态配置中心
java·开发语言·redis
专注于大数据技术栈10 分钟前
Java中JDK、JRE、JVM概念
java·开发语言·jvm
YuanlongWang14 分钟前
C# 基础——值类型与引用类型的本质区别
java·jvm·c#
Kay_Liang39 分钟前
大语言模型如何精准调用函数—— Function Calling 系统笔记
java·大数据·spring boot·笔记·ai·langchain·tools
自由的疯1 小时前
Java 如何学习Docker
java·后端·架构
自由的疯1 小时前
Java Docker本地部署
java·后端·架构
007php0071 小时前
猿辅导Java面试真实经历与深度总结(二)
java·开发语言·python·计算机网络·面试·职场和发展·golang
摇滚侠1 小时前
Spring Boot 3零基础教程,WEB 开发 内容协商机制 笔记34
java·spring boot·笔记·缓存
一勺菠萝丶1 小时前
在 macOS 上用 Docker 为 Java 后端 & 常见开发需求搭建完整服务(详尽教程)
java·macos·docker