SpringCloud——服务容错——Hystrix

news2024/10/6 14:47:51

1.现在的微服务存在哪些问题?

        在大型的微服务项目中,肯定少不了服务之间多条链路调用,如果调用中有一个服务出现了问题,如果不做任何的处理,就会造成大量的阻塞,可能会导致整个服务雪崩。

2.要解决的问题

3.服务降级(fallback)

什么情况下需要服务降级:

  • 程序运行异常或者宕机。

  • 超时。

  • 服务熔断触发服务降级(断路器打开)。

  • 线程池/信号量打满也会导致服务降级(利用Jmeter进行了压测,tomcat的默认的工作线程数被打满了,没有多余的线程来分解压力和处理,其他的接口也会卡顿)。

如果出现问题,要返回一个提示或者状态,不要傻等,一般最好在订单服务800处配置兜底方法。

3.1服务降级的配置

        我们要在服务方法上面@HystrixCommand设置一个最长的执行时间,还要设置一个超时或异常之后要执行的兜底的方法。

        但是这样会产生一个新的问题,每个业务方法对应一个兜底的方法,会导致代码膨胀,我们的优化思路是统一的和自定义的分开。在800端的controller层定义全局的服务降级(DefaultProperties)。

        为了防止8001端宕机异常,我们的在所有的方法处配置降级,这样也会和业务逻辑混乱在一起,我们可以在800端的Service层的Feign调用处配置通配的服务降级(FeignFallback)。

注意

        OpenFeign的服务调用默认只等待1秒钟,这里的等待和在controller的方法上配置的timeoutInMilliseconds是不一样的,比如timeoutInMilliseconds=5秒,意思是从我调用到返回到我controller时,我能等待5s,但是人家Service层的OpenFeign还是默认只能等1s。

4.服务熔断

        需要注意的是服务熔断和服务降级完全是两个不同的概念。

4.1熔断机制概述

        熔断机制是应对雪崩效应的一种微服务链路保护机制。当调用链路中的某个微服务出异常或者响应时间太长时,会进行服务降级执行兜底方法,然后可通过其机制判断可能会熔断该节点微服务的调用,等到检测到该节点微服务调用响应正常后,恢复调用链路。

4.2对开启熔断机制过程的梳理

        首先在一定的时间窗口期(默认10s)内,只有当请求的个数满足一定的阈值(默认20个)后,并且其请求失败率超过一定的阈值(默认50%),此时断路器将会开启(open),调用此接口的主逻辑都不能正常执行,会服务降级去调用兜底方法, 一段时间之后(默认5s),会暂时信任一下(openhalf),让一个请求进行执行主逻辑,如果成功,则断路器会关闭(close),如果失败,则断路器继续开启,等待下一次信任。

5.服务限流(后面使用Sentinel解决)

        秒杀高并发等操作时,严禁一窝蜂的过来拥挤,大家排队,一个一个来。

6.HystrixDashboard图形监控的使用

        

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

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

相关文章

SpringCloud——服务网关——GateWay

1.GateWay是什么? gateway也叫服务网关,SpringCloud GateWay使用的是Webflux中的reactor-netty响应式编程组件,底层使用了Netty通讯框架。 gateway的功能有反向代理、鉴权、流量控制、熔断、日志监控...... 2.为什么不使用Zuul&#xff1f…

如何对IP地址进行定位

IP地址是互联网上用于标识和定位设备的关键元素。通过对IP地址进行定位,您可以确定设备的大致地理位置,这对于网络管理、安全监控和地理定位服务都非常有用。本文将介绍如何对IP地址进行定位的方法以及相关的重要注意事项。 IP地址定位的基本原理 IP地…

SpringCloud——服务注册——Eureka

1.Eureka概述 2.Eureka架构: Eureka中80服务要实现对8001和8002服务访问的负载均衡,需要在80服务的RestTemplate上面加LoadBalanced注解,默认采用的是轮询的策略。 3.Eureka自我保护 当一个EurekaClient注册进EurekaServer,Eurek…

佳能相机拍出来的dat文件怎么修复为正常视频

3-3 佳能相机是普通人用得最多的相机之一,也有一些专业机会用于比较重要的场景,比如婚庆、会议录像、家庭录像使用等。 但作为电子产品,经常会出现一些奇怪的故障,最严重的应该就是拍出来的东西打不开了。 本文案例是佳能相机拍…

自动还款业务事故案例,与金融场景幂等性思考

一、自动还款业务 事故 案例 事故名称: 自动还款业务事故 事故描述: 事故发生时间:201x-0x-18 0x:15:00 事故响应时间:201x-0x-20 0x:18:00 事故解决时间:201x-0x-20 0x:28:00 事故现象: 自动扣款,出现扣款…

中远麒麟堡垒机SQL注入漏洞复现

简介 中远麒麟堡垒机用于运维管理的认证、授权、审计等监控管理,在该产品admin.php处存在SQL 注入漏洞。 漏洞复现 FOFA语法: body"url\"admin.php?controlleradmin_index&actionget_user_login_fristauth&username" 或者 c…

SEO是什么?独立站如何进行SEO优化

创建一个独立网站并不是难事,但要做好独立网站并进行SEO优化以增加自然流量可能是一个不小的挑战。今天,我们将分享一些关于独立网站SEO优化的技巧,并详细探讨如何提升流量。 在本文中,我们将主要关注谷歌SEO,但请不要…

【力扣:1504】统计全1子矩阵

统计全1子矩阵个数 思路1:首先考虑深度优先模拟,从【0,0】出发向下、右扩展,符合条件res,最后输出res,比较直观,但重复进行了大量节点遍历操作,时间复杂度较高,数据量大时…

远程调用,参数压缩问题

错误信息 { "msg": "Error while extracting response for type [XXX] and content type [application/json;charsetUTF-8]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Illegal charac…

机器视觉软件破解的背后是道高一尺,魔高一丈

讲个故事,小明从某购物平台花2000元买了一个C#机器视觉架构,压缩包带加密,卖家让小明先确认收货后给密码。 小明花了3元从另外一家卖家破解开压缩包密码,然后迅速从第一家卖家退货。小明成功省了1997元。 “道高一尺&#xff0c…

Vue的数据来源详解

目录 前言 在页面中动态展示数据 哪个配置项可以给模板语句提供数据 如何将data中的数据插入到模板语句中 如果data中的key:value对,value为对象时,如何取出其中的数据插入到模板语句中 如果data中的key:value对,value为数组时&#xff…

关于卷积神经网络中如何计算卷积核大小(kernels)

首先需要说明的一点是,虽然卷积层得名于卷积( convolution )运算,但我们通常在卷积层中使用更加直观的计算方式,叫做互相关( cross-correlation )运算。 也就是说,其实我们现在在这里…

lua中的循环 while、for、repeat until三种循环方式、pairs和ipairs区别

lua中的循环 while、for、repeat until三种循环方式、pairs和ipairs区别 介绍for循环参数ipairs和pairs whilerepeat until总结 介绍 这里我用while、for、repeat until分别输出1-20之间的奇数 ,具体的语法可以看下面的代码 for循环 参数 定义一个初始值为start…

SIM卡相关知识介绍

SIM卡简介 SIM卡(Subscriber Identity Module)是一种用于存储移动电话用户身份信息的智能卡,它是移动通信系统中的重要组成部分。SIM卡主要由微处理器CPU、程序存储器ROM、工作存储器RAM、数据存储器EEPROM和串行通信单元组成。SIM卡中微处理…

C++二分算法:黑名单中的随机数

涉及知识点 二分查找 题目 给定一个整数 n 和一个 无重复 黑名单整数数组 blacklist 。设计一种算法,从 [0, n - 1] 范围内的任意整数中选取一个 未加入 黑名单 blacklist 的整数。任何在上述范围内且不在黑名单 blacklist 中的整数都应该有 同等的可能性 被返回…

Linux | 磁盘文件与动静态库

目录 前言 一、了解磁盘 1、磁盘结构 2、磁盘划分 3、inode与文件名的关系 二、软链接与硬链接 1、如何创建软连接与硬链接文件 2、理解软连接 3、理解硬链接 三、动态库与静态库 1、静态库 (1)静态库的制作 (2)静态…

第九章 排序【数据结构】【精致版】

第九章 排序【数据结构】【精致版】 前言版权第九章 排序9.1 概述9.2 插入类排序9.2.1 直接插入排序**1-直接插入排序.c** 9.2.2 折半插入排序**2-折半插入排序.c** 9.2.3 希尔排序 9.3 交换类排序9.3.1冒泡排序**4-冒泡排序.c** 9.3.2 快速排序**5-快速排序.c** 9.4 选择类排…

Blocking waiting for file lock on the registry index 问题解决

问题表现: cargo build时一直卡在Blocking waiting for file lock on the registry index。 解决方法: 1、之前在linux下出现过一次,采用这种方法解决了:rust - Cargo build hangs with " Blocking waiting for file lock…

【已解决】Windows易升报错0xa0000400,一键修复,无损升级至Windows 10/11 22H2

笔者之前在使用的Windows 10版本是企业版LTSC 1809,想升级到22H2版,不想重装系统和所有软件,听说微软官方的“Windows易升”软件可以无损升级,下载这个软件运行之后,卡在第一步: 软件提示:“若要…

SPSS距离分析

1.距离分析 距离分析在统计学和数据科学中指的是评估和量化对象(如观测点、个体、案例等)之间差异的过程。在数据集中,每个对象通常由一系列的属性或变量表示。距离分析的目的是为了衡量这些对象在多维空间中的相对位置,通常用于…