Istio 熔断 连接池 故障处理

news2024/11/15 21:02:50

istio熔断


熔断主要是无感的处理服务异常并保证不会发生级联甚至雪崩的服务异常。在微服务方面体现是对异常的服务情况进行快速失败,它对已经调用失败的服务不再会继续调用,如果仍需要调用此异常服务,它将立刻返回失败。

与此同时,它一直监控服务的健康状况,一旦服务恢复正常,则立刻恢复对此服务的正常访问。这样的快速失败策略可以降低服务负载压力,很好地保护服务免受高负载的影响。

一个熔断器可以有三种状态:关闭、打开和半开,默认情况下处于关闭状态。在关闭状态下,无论请求成功或失败,到达预先设定的故障数量阈值前,都不会触发熔断。而当达到阈值时,熔断器就会打开。

当调用处于打开状态的服务时,熔断器将断开请求,这意味着它会直接返回一个错误,而不去执行调用。通过在客户端断开下游请求的方式,可以在生产环境中防止级联故障的发生。在经过事先配置的超时时长后,熔断器进入半开状态,这种状态下故障服务有时间从其中断的行为中恢复。如果请求在这种状态下继续失败,则熔断器将再次打开并继续阻断请求。否则熔断器将关闭,服务将被允许再次处理请求

 

 

 连接池和异常处理就是配置熔断的一个用法了,

 熔断就是我们生活当中所谓的跳闸,
 

有一天对于d服务来说,负载压力比较大,可能还有其他应用也会调用到d服务。d服务如果出现问题可能是会影响到其他服务的,影响面比较广。

为了防止某一个服务问题带来的使得整个架构都出现问题,那么可以将某个应用切断,那么这样就将d服务隔离开来了。

一些概念


连接数:
客户端向服务端发请求,需要建立TCP连接,那么建立TCP连接的数量就是连接数。
并发连接数(SBC):每秒建立的TCP连接数
请求数:(在同一个连接里面发送不同的请求)
客户端建立连接后,先服务端发送GET/POST/HEAD数据包,服务器返回结果两种情况:
1、http数据包头有close字段,关闭连接
2、http数据包头有keep-live字段,本次连接不关闭,可以下一次继续发送请求,减少TCP连接
并发请求数(QPS):每秒钟处理的请求数

建立连接之后是可以在这个连接上发送请求的,在这个连接上可以发送多个请求的。

 

熔断-连接池


熔断的定义是在DR里定义的,主要有2部分

trafficPolicy: 用于定义连接池
连接池的定义分成两类:
  • TCP连接
maxConncections: 到目标主机的最大连接数
connectTimeOut: TCP连接超时,最小值必须要大于1ms
  • http连接
http1MaxPendingReguests: 针对一个目标的HTTP请求最大排队数量,默认是1024
http2MaxRequests: 对一个后端的最大请求数
maxRequestsPerConnection:每个连接最多发送多少个请求
maxReties: 在给定的时间,集群所有主机最大重试数,默认值为3

连接池满了,但是可以有一个排队的,等待着处理。

 一次性建立了5个连接,一共发送20个请求,

异常处理
outlierDetection:
用于定义熔断的条件,达到什么条件就开始熔断
consecutiveGatewayErrors: 1 连续错误几次开始熔断,该实例会被踢掉(从连接池里面踢掉,那么就不会往里面去进行转发了)
interval:驱逐检查的时间间隔(驱逐检测的统计时间),默认为10秒
baseEjectionTime指定来一个实例被踢掉之后,最少多长时间之后加回来,如果连续触发熔断,熔
断的时长会乘以相应的倍数,时间默认为30秒
一个服务被驱逐的时间等于驱逐次数乘以最小驱逐时间,所以被驱逐的实例再被再次驱逐时会变得
越来越长
maxEjectionPercent:服务的可驱逐故障实例的最大比例,默认为10%。官方不建议配置过高,过
分的驱逐会影响服务的服务能力
minHealthPercent:最小健康比例,当负载的实例中,如果健康的实例数量低于这个比例,istio
会进入恐慌模式,异常检查功能会被禁用,所有的服务不论是否是故障实例都可以接受请求。(有效的机器不能低于这个值,低于这个值,熔断就不再生效了)

 

后端的某一个pod被熔断了,它不再对外提供服务了,希望在过一段时间是可以启动起来的。

这个时候就需要去配置异常处理,

 

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

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

相关文章

c语言修炼第一章--初识c语言(1.3)

目录 前言: 1.关键字 1.1常见关键字: 1.1.1typedef类型重定义 1.2.static 1.2.1static修饰局部变量 1.2.2static修饰全局变量 1.2.3static修饰函数 …

待办事项工具用哪个?每天都在用的待办工具

随着职场“内卷”程度的加深,越来越多的上班族感到自己每天都会面临各种繁忙的日程安排、琐碎的待办事项,并且工作事项和家庭事项交织在一起,需要各方面都兼顾到,这简直让人恨不得长出三头六臂。在待办的事情比较多时,…

艺考之路,很艰难也很幸福

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 卷圈 运营 / SandLiu 卷圈 监制 / 姝琦 嘉宾 / 小川同学 产品统筹 / bobo 录音间 / 声湃轩北京站 本期节目是拼娃时代的第三十期,我们请来了拼娃时代的老朋友,小川同学。 拼娃时代的听友们肯定…

带有10位数码管显示的语音芯片ic,节省30%MCU硬件资源WTV890-B001

随着科技的不断发展,WTV890-B001多功能语音芯片的推出,为工程师带来了极大的便利和产品体验,这款多功能语音芯片具有许多优势,其中WTV890-B001版本中,最引人注目的特点是它带有10位的数码管显示功能,无需再…

nginx配置https证书(nginx-docker版本)

1、下载证书文件 以下两种多可配置 2、nginx server下加上配置 注意:ssl_certificate 参数可为crt文件、或者pem文件。需要将文件docker cp进容器中, ssl_certificate、ssl_certificate_key 为容器内的文件路径。 listen 443 ssl;server_name 域名地…

TMS FlexCel Studio for net 7.17 cRACK

TTMS FlexCel Studio for net 100% 托管代码 Excel 文件操作引擎以及 Excel 和 PDF 报告生成,适用于 .NET、Xamarin.iOS、Xamarin.Android、Xamarin.Mac​​ 功能概述 使用 FlexCel Studio for .NET 创建可动态快速读写 Excel 文件的应用程序、Web 服务和移动设备应…

深入理解浏览器的缓存机制之协商缓存与强缓存

目录 什么是浏览器缓存 浏览器缓存的分类 🎗️ 强缓存 🎗️ 协商缓存 👉🏻 缓存请求流程 👉🏻 为什么要有Etag 👉🏻 缓存优先级 👉🏻 启发式缓存 &a…

Midjourney教程古风人像类

古风图像的特点: 人物发型多为飘逸的长发,或是精致的盘发; 人物服装多为飘逸的长袍、长裙; 整体画风以水墨、水彩、工笔为c主,线条写意,色彩清新淡雅; 背景中多用花鸟、亭台楼阁、桃林等构建氛…

抖音seo矩阵系统源码|需求文档编译说明(三)

文章目录 批量剪辑工具技术源码框架 短视频SEO矩阵系统源码技术开发,遵循步骤抖音矩阵系统源码搭建功能 开发语言及开发环境 抖音账号矩阵系统源码搭建包括以下步骤 概要 ​​抖音seo源码,抖音矩阵系统如何使用源码二次开发,开发的功能有那些…

RT-Thread内核介绍

目录 三、RT-Thread内核介绍 3.1、内核框架 3.1.1、线程调度 3.1.2、时钟管理 3.1.3、线程间同步 3.1.4、线程间通信 3.1.5、内存管理 3.1.6、I/O 设备管理 3.2、RTT内核启动流程 3.2.1、汇编阶段 3.2.2、C阶段 3.2.3、rtthread_startup函数 3.2.4、创建主线程 三、…

jupyter notebook内核挂掉的解决方案

今天在运行notebook时报错 “jupyter notebook内核挂掉了”查找发现是下面这一句出的错,这是pytorch深度学习实战中的一个例程,读取三维体素文件并把其中的一张当作图片显示出来 plt.imshow(vol_arr[50]) 完整代码如下 import torch torch.set_printo…

决策树精讲

一、决策树的构造 决策树的构造是一个递归的过程,有三种情形会导致递归返回:(1)当前结点包含的样本全属于同一类别,这时直接将该结点标记为叶结点,并设为相应的类别;(2)当前属性集为空,或是所有样本在所有…

消息队列选型——为什么选择RabbitMQ

前言 MQ消息是目前分布式系统必不可少的组件,但是面对市面上众多的MQ组件,我们该用什么呢?我以实际项目的需求触发,介绍今天的主角——rabbitMQ。同时也会告知又有哪些优势和不足。事不宜迟,就开始今天的学习吧 目录…

ghost cms配置qq邮箱

背景: 在ghost cms中使用qq邮箱作为注册、登录、订阅等邮件发送方。 1 修改配置 在config.*.json文件中,添加mail配置 "mail": {"from": "xxxxxxqq.com","transport": "SMTP","options"…

Qt6 FFmpeg入门1 - 环境配置

目录 环境配置ffmpeg 下载qt 配套环境配置代码测试 环境配置 文章更新时间:2023/06/24 ffmpeg 下载 由于大部分的关于配置 ffmpegqt 环境的文章都停留在 2021 年,且许多方法均已过时,现在介绍一个最新的方法,并分析槽点供大家参考…

ElementUI在对话框中新增数据,使用rules校验规则进行校验,再点击完修改之后,在进行新增校验会报错

1.新增与修改使用同一个对话框,当修改完成一条数据后,重新打开新增的对话框,通过ElementUI的rules检验会报错 解决方案:在对应的rules校验中每个字段添加trigger: blur 即可解决上述问题,注意:下面的xxx代表需要校验的…

设计模式-05.01-行为型-观察者模板

观察者模式【常用】 我们常把 23 种经典的设计模式分为三类:创建型、结构型、行为型。前面我们已经学习了创建型和结构型,从今天起,我们开始学习行为型设计模式。我们知道,创建型设计模式主要解决“对象的创建”问题,…

工具篇7--RocketMq消息模型介绍

文章目录 前言:一、RocketMq是什么?二、RocketMq 模型介绍:1.RocketMq 模型图:2.RocketMq 生产者:2.1 生产者消费发送流程:2.2 生产者消息发送:2.2.1 同步发送普通消息:2.2.1 异步发…

AI大模型及算力要求

AI大模型对算力的要求非常高,需要高性能的硬件设备和分布式训练技术来支持。随着AI技术的不断发展,未来可能会出现更大、更复杂的模型,对算力的要求也将更高。今天和大家分享几个大模型及算力要求,希望对大家有所帮助。北京木奇移…

DETR系列:RT-DETR实战部署

上篇文章介绍RT-detr的论文内容(RT-DETR 论文解析),本篇文章介绍算法复现、tensorRT加速、python调用部署、训练等方法。 RT-DETR实战部署 1.复现模型详情2.环境准备3.训练4.部署5.测试 1.复现模型详情 本次复现主要测试下表中RT-DETR-R50和…