当前位置: 首页 > news >正文

微服务--Sentinel(实现:服务高可用)

内存溢出:OOM

服务器挂掉的原因:
1.激增流量打垮:

              1.流量突然飙升,导致CPU上升,出现挂机

               2.负载不均:比如一个实例长期未重启,导致磁盘写满降低响应时间等。

               3.线程池满,单点故障??

               4.激增流量打垮冷系统(数据库连接未创建,缓存未预热:比如说:党费缴纳:交党费那天给客户提醒,然后大量请求进来,缓存数据未预热,导致大量请求数据库,数据库访问时间变慢,导致同一节点数据库访问变慢,导致支付系统响应时间变慢

               5.消息传递速度过快,导致消息处理积压。(MQ)

2.被其他服务拖垮

              1.满SQL查询卡爆连接池

              2.第三方服务不响应,卡满线程池

              3.业务调用持续出现异常,产生大量副作用

3.异常处理

服务雪崩效应:因服务提供者的不可用导致服务调用者的不可用,并将不可用逐渐放大的过程,叫做服务雪崩效应

容错机制:
1.超时机制(常用容错机制):

场景:服务提供者不可用导致消费者请求线程强制等待,造成系统资源耗尽

作用:一旦超时,就释放资源,一定程度抑制资源耗尽的问题

2.服务限流:

  服务达到QPS最大值,则进行限流,可直接拒绝:当前使用人数较多,请稍后再试。(nginx\mq、sentinel)

3.隔离:
4.服务熔断:

远程服务不稳定或网络抖动时暂时关闭,叫:服务熔断。

当依赖的服务有大量的超时时,会让新的请求再去访问根本没有意义,只会无畏的消耗现有资源。

   1.出现慢SQL,慢SQL导致应用越来越慢,最后整个应用卡挂了

  2.依赖第三方服务,第三方服务突然不响应,造成应用线程被挂在第三方应用上无法返回,最后自己线程耗尽,无法处理新的请求

   3.程序内部某个方法持续异常,这个时候调用这个方法毫无意义,而且影响主业务流程

5.服务降级(是服务熔断的兜底计划:有熔断就要服务降级)

    强依赖:如订单等,直接提示客户失败不作后续处理(如订单)

    弱依赖:可先记录一条数据,后续通过定时任务或者调度实现补偿机制(如积分)

降级策略:支持:基于响应时间和失败比率进行降级;

流量整形:支持慢启动,匀速器模式(压测时刚开始启动比较慢???是否与此相关?)

持久化:支持持久化:注册中心,放数据库(hystrix:放git,svn等文件内存中)

实现流控规则:
QPS:每秒的访问数:设置1;则一秒钟只能处理一次访问

线程数:设置1的话,一个线程在处理中,则下一个线程会流控,等前面处理完了再进行处理

@SentinelResource  注解:改善接口中资源定义和被流控降级后的处理方式

降级规则:(1s内执行n次,出现m次异常,就出发异常。

1.异常数:触发熔断策略:异常数,异常比例、慢调用比例

2.出发熔断最小请求书:

3、统计时长:默认1s

熔断持续时长:单位:秒,

一旦出发熔断,再次请求对应接口就会出发降级方法(降级方法:比如提示客户稍后再试)

10秒后--处于半开状态,如果第一次触发请求就异常,则会再次熔断。不会根据熔断设计规则熔断

流控模式:

1.直接

2.关联:关联资源

使用场景:下单:插入,影响查询(通过生成订单出发查询订单的限流)

3.链路:入口资源;流控效果:快速失败(直接报错);排队等待;warm up(慢慢处理)

链路默认为收敛方式:需要将配置修改为:false

场景:

针对激增流量处理:warm up(慢慢处理),党费的限流设置就可以设置成链路流控

针对脉冲流量处理:排队等待,

熔断降级策略:

1.慢调用比例

比例阈值0.1、最小请求数:10,最大RT,熔断时长。1秒钟10次请求,,如果一次出现慢调用时,触发降级规则:

2.异常比例

比例阈值:0.1 熔断时长 10s,最小请求数5;10次请求里面1次失败,则触发熔断降级

3.异常数

异常数:1,熔断时长:10s,最小请求数10;10次请求中一次异常,则触发熔断。

热点参数流控:热点流控规则

何为热点:即经常访问的数据;很多时候,我们希望统计某个热点数据中访问频次最高的数据,并对其访问进行限制。

常用场景:

         热点商品访问/操作控制

         用户/IP  防刷   (如秒杀)如防止暴力破解

实现原理:热点淘汰策略(LRU)+TOKEN Rucket流控

设置:限流模式:QPS模式,参数索引 0(第几个参数),单机阈值:10(所有参数值设置的公共阈值),统计窗口时长:1秒,是否集群;一秒钟之内的阈值为10

单机阈值:1.假设 参数大部分是热点参数,那单机阈值主要针对热点参数进行流控,后续额外针对普通流量进行流控;

          2.假设 参数大部分是普通参数,那单机阈值主要针对普通参数进行流控,后续额外针对热点流量进行流控;

编辑后出现高级选项:参数额外(与上面额外一个意思)项:参数类型,参数值;

系统保护规则(系统兜底方案)

阈值类型:load自适应、CPU使用率、入口QPS(入口平均访问量)、线程数、RT、LOAD

规则持久化sentinel+nacals(注册中心)

1.原始模式:重启后消失,不建议在生产使用

2.拉模式:pull模式

3.推模式:push模式:(生产常用)

一般做法:配置中心控制台/Sentinel控制台-->配置中心(NACOS注册中心)-->Sentinel数据源-->Sentinel

GATWAY整合sentinel

配置数据:网关流控规则:

API类型:ROUT ID/API 分组;API名称;针对请求属性:勾选后增加{参数属性:Client ip,Remote Host,Head,url 参数,Cookies;名称:;匹配属性;匹配模式:精确、子串、正则;匹配串:};阈值类型:QPS/线程数;QPS阈值间隔;流控方式:快速失败,匀速排队;Burst size;

相关文章:

微服务--Sentinel(实现:服务高可用)

内存溢出:OOM 服务器挂掉的原因: 1.激增流量打垮: 1.流量突然飙升,导致CPU上升,出现挂机 2.负载不均:比如一个实例长期未重启,导致磁盘写满降低响应时间等。 3.线程池满,单点故障&…...

【MySQL】4、MySQL备份与恢复

备份的主要目的是灾难恢复,备份还可以测试应用、回滚数据修改、查询历史数据、审计等 MySQL日志管理 MySQL 的日志默认保存位置为 /usr/local/mysql/data #配置文件 vim /etc/my.cnf 日志的分类 常见日志有: 错误日志,一般查询日志&…...

python后端,一个账户,多设备登录管理

一个账号,多台设备同时登陆的问题,设计以及实现 参考这篇文章: https://www.alibabacloud.com/help/zh/tair/use-cases/manage-multi-device-logon-from-a-single-user-by-using-tairhash1.0 设计思路 利用的是Redis,主设备的保…...

Django实现音乐网站 ⒁

使用Python Django框架制作一个音乐网站, 本篇主要是歌手页-全部歌手页功能开发。 目录 分出首页样式内容 创建首页样式文件 首页引入样式文件 全部歌手列表 创建路由 显示视图 引入分页实现库 视图方法 创建歌手首页 增加歌手跳转 导航条改活 首页增加…...

服务器监控可视化

IT监控可视化是一种将IT监控数据以图形化的方式呈现给用户的技术,可以帮助用户更直观、更易懂地了解IT系统的运行状况。服务器监控可视化是其中的一个重要应用场景,可以将服务器的各种性能指标以图表、仪表盘等形式展示,以便管理员更好地了解…...

Redis网络模型

目录 Redis网络模型 用户空间和内核态空间 阻塞IO(BIO) 非阻塞IO(NIO) IO多路复用 信号驱动IO 异步IO(AIO) Redis到底是单线程还是多线程? 为什么要使用单线程? Redis网络模型 进程的寻址空间会划分为两部分:内核空间、用户空间 用…...

Super Resolve Dynamic Scene from Continuous Spike Streams论文笔记

摘要 近期,脉冲相机在记录高动态场景中展示了其优越的潜力。不像传统相机将一个曝光时间内的视觉信息进行压缩成像,脉冲相机连续地输出二的脉冲流来记录动态场景,因此拥有极高的时间分辨率。而现有的脉冲相机重建方法主要集中在重建和脉冲相…...

操作视频的开始与暂停

调用 ref.current.play() 方法来播放视频; 如果视频需要暂停,我们调用 ref.current.pause() 方法来暂停视频。 通过 useRef 创建的 ref 操作视频的开始与暂停 当用户点击按钮时,根据当前视频的状态,我们会开始或暂停视频&…...

使用Docker配置深度学习的运行环境

文章目录 推荐实验环境前言docker安装docker操作docker配置常见方法(安装包、联网、程序管理器)安装驱动的前提要求传统方法安装驱动程序程序管理器安装联网安装deb包安装 安装完成后的设置非传统方法安装-通过容器安装驱动的前提要求安装NVIDIA-Contain…...

三相PMSM的坐标变换

三相PMSM的坐标变换 三相PMSM的数学模型具有复杂性和耦合性的多变量系统。因此需要对其进行降阶和解耦变换。 Vα,Vb,Vc是自然坐标系。 Vα,Vβ是静止坐标系。 Vd,Vq是同步旋转坐标系。 自然坐标系 三相永磁同步电机的驱动电路…...

8.(Python数模)(预测模型一)马尔科夫链预测

Python实现马尔科夫链预测 马尔科夫链原理 马尔科夫链是一种进行预测的方法,常用于系统未来时刻情况只和现在有关,而与过去无关。 用下面这个例子来讲述马尔科夫链。 如何预测下一时刻计算机发生故障的概率? 当前状态只存在0(故…...

Leetcode1006笨阶乘

思路:以4为一个分组分别进行处理 class Solution:def clumsy(self, n: int) -> int:answer_dict {0:0,1: 1, 2: 2, 3: 6, 4: 7}if n > 4:answer n * (n - 1) // (n - 2) n - 3n - 4else:print(answer_dict[n])return answer_dict[n]print(answer)while n …...

阻塞非阻塞IO(BIO和NIO),IO多路复用

1.概念 NIO(New Input/Output)和BIO(Blocking Input/Output)是Java中用于处理输入输出的两种不同的模型。 BIO 会阻塞,等有了消息,立刻返回,一个线程处理一个recv(需要很多线程&…...

HTTP协议初识·中篇

加上目录,会出现导向不正确的情况,可能是bug,目录一长就容易出错? 本篇主要讲解了: 网页分离(网页代码和.c文件分离) html链接跳转 网页添加图片 确认并返回资源类型 填写正文长度属性 添加表单 临时重定向 补充知识&a…...

数学建模:拟合算法

🔆 文章首发于我的个人博客:欢迎大佬们来逛逛 数学建模:拟合算法 文章目录 数学建模:拟合算法拟合算法多项式拟合非线性拟合cftool工具箱的使用 拟合算法 根据1到12点间的温度数据求出温度与时间之间的近似函数关系 F ( t ) F(…...

计算机网络-笔记-汇总

目录 📚 前言 🌸章节汇总 🚀 学习心得 ⌛2023年8月31日 星期四 📚 前言 在学习了【操作系统】、【计算机组成原理】之后 再来学习【计算机网络】,对计算机之间如何通信,有了一个大致的认识。 可以想象…...

STM32定时器定时及其应用

STM32定时器定时及其应用 定时器概述☆定时器相关配置CubeMX工程配置及程序实现固件库程序设计及实现 定时器概述 1. 工作原理 使用精准的时基,通过硬件的方式,实现定时功能。定时器核心就是计数器 2. 定时器分类   基本定时器(TIM6~TIM7…...

(牛客) 游游的字符重排(next_permutation的使用)

题目描述 游游定义一个字符串是“好串”,当且仅当该字符串相邻的字符不相等。例如"arcaea"是好串,而"food"不是好串。 游游拿到了一个字符串,她可以将该字符串的各个字符顺序随意打乱。她想知道一共可以生产多少种不同的…...

RTPEngine 通过 HTTP 获取指标的方式

文章目录 1.背景介绍2.RTPEngine 支持的 HTTP 请求3.通过 HTTP 请求获取指标的方法3.1 脚本配置3.2 请求方式 1.背景介绍 RTPEngine 是常用的媒体代理服务器,通常被集成到 SIP 代理服务器中以减小代理服务器媒体传输的压力,其架构如下图所示。这种使用方…...

聚鑫数藏平台——引领数字资产管理新风向

随着数字经济的飞速发展,新金融生态应运而生。区块链技术的崭新突破,使数字资产的重要性日益凸显,为投资者带来了前所未有的机遇和挑战。在此背景下,聚鑫数藏平台横空出世,引领着数字资产管理的新风向。 聚鑫数藏平台&…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)&#xff0…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...