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 {@Overridepublic 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 监控

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/724561.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python基础第二天

世界杯小组赛成绩 注意: 1.循环 1.1while 1.2for 1.3 range 1.4 while else while 循环正常执行完才能执行else语句

【Linux】磁盘情况、挂载,df -h无法看到的卷

文章目录 解决挂载、解决挂载完重启就消失1、查看linux下的硬盘挂载的空间、使用空间2、查看没有挂载的硬盘是否检测在系统中3、挂载 (挂载完,要在/etc/fstab 下面配置挂载信息 要不然重启挂载就消失了) 解决挂载、解决挂载完重启就消失 linu…

【C++通关攻略 · 基础篇】注释

✍作者:黑洞极客 📔专栏:C:通关攻略 本篇文章将介绍 C 中的注释,有帮助的话别忘点赞收藏,关注专栏哦! 注释 注释,是程序中的解释型语言,可以提高程序的可读性。在程序中使…

推荐一款桌面端redis连接工具, redis desktop manager替代品——another redis desktop manager

下载地址 Another Redis Desktop Manager | 更快、更好、更稳定的Redis桌面(GUI)管理客户端,兼容Windows、Mac、Linux,性能出众,轻松加载海量键值 封面对比 对比redis desktop manager ,ui上有巨大的改进 但是redis desktop ma…

华为OD机试“HJ101 输入整型数组和排序标识,对其元素按照升序或降序进行排序”Java编程解答

描述 输入整型数组和排序标识,对其元素按照升序或降序进行排序 数据范围: 1≤n≤1000 ,元素大小满足 0≤val≤100000 输入描述: 第一行输入数组元素个数 第二行输入待排序的数组,每个数用空格隔开 第三行输入一…

授权认证登录之 Cookie、Session、Token、JWT 详解

授权认证登录之 Cookie、Session、Token、JWT 详解 一、先了解几个基础概念什么是认证(Authentication)什么是授权(Authorization)什么是凭证(Credentials) 二、Cookie1、了解 Cookie2、cooker的创建2、coo…

嵌入式面试

1.关键字static的作用是什么?为什么static变量只初始化一次? 1)修饰局部变量:使得变量变成静态变量,存储在静态区,存储在静态区的数据周期和程序相同, 在main函数开始前初始化,在退…

C#相关热点面试题

以下是一些C#相关的热点面试题: 请解释一下C#中的LINQ(Language-Integrated Query)?它有什么优点? LINQ是C#中的一种特性,它允许使用类似于SQL的查询语句来操作内存中的数据集合,包括对象、XML、…

【刷题】双指针入门

双指针入门 双指针283.移动零1089. 复写零202. 快乐数11. 盛最多水的容器Thanks♪(・ω・)ノ谢谢阅读!!!下一篇文章见!!! 双指针 双指针是非常经典的算法,包括但…

报错:module ‘collections‘ has no attribute ‘Iterable‘

使用python 高版本,在使用collections遇到报错:module ‘collections’ has no attribute ‘Iterable’ 查了资料 在python3.9 之后collections.Iterable被弃用了。 添加修改语句 collections.Iterable collections.abc.Iterable

保留数据的重装系统教程!(win11系统)

上车警告!!! 本教程无需思考,跟着操作一步一步来就能完成系统的重装。原理是将C盘系统重装,其他盘符数据保存。适用于系统盘重装数据或更改系统版本。 重要提示!!! C盘有重要学习资…

python之海龟绘图

海龟绘图(turtle)是一个Python内置的绘图库,也被称为“Turtle Graphics”或简称“Turtles”。它采用了一种有趣的绘图方式,模拟一只小海龟在屏幕上爬行,而小海龟爬行的路径就形成了绘制的图形。这种绘图方式最初源自20世纪60年代的Logo编程语言,后来一些Python程序员构建…

24计算机考研调剂 | 广西大学(211)

广西大学接收机械调剂研究生 考研调剂招生信息 学校:广西大学 专业:工学->机械工程->机械制造及其自动化 年级:2024 招生人数:70 招生状态:正在招生中 联系方式:********* (为保护个人隐私,联系方式仅限APP查看) 补充内容 广西大学是中国广西壮族自治区的一所历史…

Android开发大佬的百度美团快手等大厂Offer收割之旅,作为Android程序员都应掌握

一、概述 随着业务的发展,工程的逐渐增大与开发人员增多,很多工程都走向了模块化、组件化、插件化道路,来方便大家的合作开发与降低业务之间的耦合度。现在就和大家谈谈模块化的交互问题,首先看下模块化的几个优势。 模块化的优…

CPP编程-CPP11中的内存管理策略模型与名称空间管理探幽(时隔一年,再谈C++抽象内存模型)

CPP编程-CPP11中的内存管理策略模型与名称空间管理探幽 CPP的四大内存分区模型 在 C 中,**内存分区是一种模型,用于描述程序运行时内存的逻辑组织方式,但在底层操作系统中,并不存在严格意义上的内存分区。**操作系统通常将内存分…

太惊艳了!多微信管理利器,让你事半功倍!

作为现代社交媒体的主要平台之一,微信在商务领域中扮演着重要的角色。为了提高我们的工作效率,微信管理系统应运而生。 这个系统可以同时登录多个微信账号,并进行统一管理。除了便捷的登录管理功能外,微信管理系统还提供了许多实…

[Firefly-Linux] RK3399点亮eDP液晶屏并支持触摸

连接方法 EDP 液晶屏模组与主控的连接分为四部分: (1)屏幕背光 (2)EDP 信号 (3)电压跳线 (4)TP 触摸 屏幕背光 屏幕背光的原理图如下: BL_EN 是背光使能引脚,连接到主控的 GPIO1_A1 端口LCD_BL_PWM0 是 PWM 调光引脚,使用主控的 PWM0 端口EDP 信号 EDP 信号的…

秒杀蓝牙!华为“星闪”到底是什么?

2023年8月4日,华为2023HDC大会正式举办,鸿蒙4.0确实很惊艳,流畅与个性齐头并进。 但无人在意的角落,星闪Nearlink的星星之火即将燎原。 大会上余总对星闪一笔带过,众所周知,越不重要出现越少,…

JAVA集合6-TreeSet

介绍 TreeSet&#xff1a;基于红黑树实现的有序集合&#xff0c;按元素的自然顺序或自定义顺序排序。 TreeSet<String> treeSet new TreeSet<>(); treeSet.add("Item 1"); treeSet.add("Item 2");TreeSet 的底层实现是基于 TreeMap 的&…

土地利用数据分类过程教学/土地利用分类/遥感解译/土地利用获取来源介绍/地理数据获取

本篇主要介绍如何对影像数据进行分类解译&#xff0c;及过程教学&#xff0c;示例数据下载链接&#xff1a;数据下载链接 一、背景介绍 土地是人类赖以生存与发展的重要资源和物质保障&#xff0c;在“人口&#xff0d;资源&#xff0d;环境&#xff0d;发展&#x…