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 监控

相关推荐
Bazingga1 小时前
Java16 record 完整拆解——语法、语义、限制、反射
java·后端
SL_staff3 小时前
规则联动:给工厂装上‘自动化神经反射弧’——JVS·物联网平台规则引擎实战教程
java·人工智能·物联网
骑着蜗牛撵大象3273 小时前
Linux 进程间通信之管道:从 pipe() 的内核语义到 FIFO 落地排错
android·java·linux·系统编程·fifo·管道·进程间通信
WJ.Polar3 小时前
Java封装、继承、多态
java·开发语言
ly76893 小时前
PostgreSQL 备份恢复策略:pg_basebackup、WAL 归档与 PITR 在企业 Java 系统中的落地
java·数据库·postgresql·pitr·pg_basebackup·wal 归档
摇滚侠3 小时前
Java 中如何表示负数,有符号和无符号的区别,补码的计算规则,char byte short int long 的范围
java·开发语言
奇牙coding4 小时前
Codex CLI 升级后多文件编辑静默失效:config.yaml 枚举变更排查与修复指南
java·前端·javascript·ai
小羊没烦恼!4 小时前
Ajax与JSON的一些总结
android·java·前端·数据库·mysql·算法·okhttp
Lhappy嘻嘻4 小时前
读懂 JVM:内存模型、类加载机制、分代回收
java·开发语言·jvm
黄俊懿4 小时前
【架构师从入门到进阶】第六章:服务集群优化——第八节:线程数公式
java·服务器·数据库·分布式·性能优化·架构·系统架构