高可用--限流熔断降级

熔断

熔断是应对微服务雪崩效应的一种链路保护机制。

场景

  • 服务端出现问题
    • 服务指标:响应时间、错误率、连续错误数等,超过阈值出发熔断。
    • 硬件指标:CPU、网络IO、内存

目的

  • 服务端恢复需要时间、服务端需要休息
  • 避免全调用链路崩溃,不能再把请求再发给Server了,一旦堆积也会造成其他服务出现问题

手段

  • 熔断器直接抛出熔断的异常响应,三个状态切换,决定是否处于熔断状态
    在这里插入图片描述

流程

  1. Server被监控到异常,出发熔断,熔断器抛出熔断的异常响应
  2. Client收到异常,利用负载均衡重新选择节点,后续请求不再打到被熔断的节点
  3. 一段时间后,Client再对这个节点重新请求,如果正常响应,则缓慢对这个节点放开流量,如果仍然是熔断状态,则继续执行Step2,如此循环

限流

场景 & 目的

  • 突发的流量增大,使系统崩溃

  • 判断指标:节点当前连接数、QPS等

静态算法

一般情况下,令牌产生速率/漏桶“开口速率”决定处理请求速率。

  • 令牌桶:系统以恒定速率产生并把令牌放到桶里,每个请求从桶里拿到令牌才会被执行,反之被限流

  • 漏桶:(令牌桶的桶容量是0就是漏桶)系统匀速产生令牌,没被取走也不会积攒下来。系统处理请求时均匀的。

  • 固定窗口:固定时间段内,只执行固定数量的请求。

  • 滑动窗口:滑动窗口随着时间线挪动窗口。

动态算法:BBR

类似于 TCP 的拥塞控制,根据一系列指标来判定是否需要触发限流。

流程

  • 在中间件记录流量和阈值,并在中问件中实现限流算法。
  • 对于偶发性的触发限流,只要在超时范围内,可以同步阻塞等待请求被处理。
  • server的某个节点触发了 非偶发性限流,Client 利用负载均衡调低该节点的权重,尽量少向这个节点发请求。

如何确定阈值

  • 阈值太低,导致资源被闲置;國值太高,导致系统撑不住而崩溃。
  • 上线后看监控,根据业务峰值 QPS 来约定阈值。
  • 上线前做压测,找准限流的阈值。

熔断&限流&降级关系

熔断是完全不再发请求,限流是降低发送请求的频率。
熔断是防止雪崩效应发生提前触发;

降级

场景&目的

  • 系统出现故障后的补救措施;或可预见的故障前的应对措施,来保证整体的可用性。
  • 对非核心业务降级,为核心业务留出更多资源。

手段

  • 考虑停用部分监控埋点、日志上报等观测类中间件。
  • 根据业务场景判断,停用边缘服务,返回服务繁忙之类的响应。
  • 对于有缓存的接口,降级时只查缓存,不查 DB,没命中缓存则返回错误的响应。

终:核心思想

  • 如何判断节点的健康状态?是否需要熔断/限流/降级?
    • 通过监控看指标:QPS、连接数、节点负载等
  • 熔断/限流/降级后,怎么恢复?
    • 熔断/限流搭配负载均衡,等节点恢复正常后,再重新选择
    • 降级有时是手动恢复

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

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

相关文章

腾讯云服务器云硬盘存储三副本消除单点故障

腾讯云服务器造可靠性处于业界领先水平的云服务器,云服务器CVM可靠性单实例99.975%,数据可靠性99.9999999%,云硬盘采用三副本专业存储策略,消除单点故障,保证数据可靠性,腾讯云百科txybk.com分享腾讯云服务…

LoRA低秩微调技术详解

在当今快节奏的技术环境中,大型AI模型正在推动不同领域的突破。 然而,根据特定任务或数据集定制这些模型可能是一项计算和资源密集型工作。 LoRA是一种突破性且高效的微调技术,它利用这些高级模型的强大功能来执行自定义任务和数据集&#xf…

Redis(地理空间Geospatial和HyperLogLog)

Geospatial: Redis中的Geospatial提供了一种存储和处理地理空间数据的能力,这对于许多应用非常有用。以下是Redis中的Geospatial的一些作用: 1. 地理位置查询:可以存储地理位置的坐标信息,并且可以通过查询指定半径范…

基于供需算法优化概率神经网络PNN的分类预测 - 附代码

基于供需算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于供需算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于供需优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神经网络的光滑…

memcacheredis构建缓存服务器

一、缓存服务器: 1、简介: ① 许多Web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示。 但随着数据量的增大、访问的集中,就会出现RDBMS的负担加重、数据库响应恶化、 网站显示延迟等重大影响。 ● RDBMS&…

MyBatis 操作数据库(构造动态 SQL)

前言 动态 SQL 是 Mybatis 的强⼤特性之⼀&#xff0c;能够完成不同条件下不同的 sql 拼接。 <if> 标签 我们在填写用户信息的时候经常会看到如下的界面&#xff0c;用户信息中包含必填信息和非必填信息&#xff0c;非必填信息是填和不填都可以的&#xff0c;那这样的话…

lectin

PSGL-1 ; selectin O-linked glycosylation | Detailed Pedia PSGL-1 has several O-glycans to extend the ligand away from the cell surface. An sLex epitope allows interactions with the receptor for leukocyte localisation. 分类 --Recognition by Animal Lectins…

C语言每日一题(33)随机链表的复制

力扣138 随机链表的复制 题目描述 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成&#xff0c;其中每个新节点的值都…

从关键新闻和最新技术看AI行业发展(2023.11.6-11.19第十期) |【WeThinkIn老实人报】

Rocky Ding 公众号&#xff1a;WeThinkIn 写在前面 【WeThinkIn老实人报】旨在整理&挖掘AI行业的关键新闻和最新技术&#xff0c;同时Rocky会对这些关键信息进行解读&#xff0c;力求让读者们能从容跟随AI科技潮流。也欢迎大家提出宝贵的优化建议&#xff0c;一起交流学习&…

FPGA语法相关知识合集

一.相关概念 1.四种结构说明语句 2.initial 与 always 的异同点 3.task 与 function 的3个不同点 4.task的语法结构(定义及调用) 5.function的语法结构(定义及调用) 6.function 的一个必须有和一个必须没有&#xff0c;使用规则 7.自动&#xff08;递归&#xff09;函数…

五、Linux目录结构

1.基本介绍 1.Linux的文件系统是采用级层式的树状目录结构&#xff0c;在此结构中的最上层是根目录"r/"&#xff0c;然后在此目录下再创建其他的目录。 2.深刻理解linux树状文件目录是非常重要的 3.记住一句经典的话&#xff1a;在Linux世界里&#xff0c;一切皆文件…

亚马逊Lightsail:云服务新篇章,轻松开启您的数字未来

文章目录 前言一、Lightsail是什么&#xff1f;Lightsail的优势使用场景 二、AWS lightsail创建VPS总结 前言 对于开发者而言&#xff0c;当你想构建系统架构时&#xff0c;你的面前就出现了两种选择&#xff0c;选择一是花时间去亲手挑选每个亚马逊云科技组件&#xff08;云服…