阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

认识Sentinel

617次阅读
没有评论

共计 3457 个字符,预计需要花费 9 分钟才能阅读完成。

1、Sentinel 概述

在微服务架构中,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保证服务的稳定性。

Sentinel 提供了机器发现、健康情况管理、监控(单机和集群)、规则管理和推送等功能。它还提供了一个轻量级的开源控制台(Sentinel Dashboard)。

1.2、Sentinel 特征

  • 丰富的应用场景:Sentinel 是阿里巴巴在生产环境中使用的产品,应用在近 10 年来的 ” 双十一 ” 大促流量场景中,实现了秒杀(将突发流量控制在系统容量可以承受的范围)、消息削峰填谷、实时熔断下游不可用应用等功能

  • 完备的实时监控:Sentinel 提供了实时监控功能。在控制台中,不仅可以看到接入的单台机器的秒级数据,还可以看到 500 以下规模的集群的运行情况的汇总数据

  • 广泛的开源生态:Sentinel 提供了 ” 开箱即用 ” 的、可与其他开源框架 / 库整合的模块,例如:可以与 Spring Cloud、Dubbo、gRPC 进行整合

  • 完善的 SPI 扩展点:Sentinel 提供了 SPI(Service Provider Interface 一种服务发现机制)扩展点。它可以快速地定制逻辑,例如定制规则管理、适配数据源等

1.3、Sentinel 核心概念

  • 资源:Sentinel 控制和保护的对象即 ” 资源 ”,它是 Sentinel 中一个关键的概念。它可以是 Java 应用程序中的任何内容,例如,由应用程序提供的服务、应用程序调用的其他应用提供的服务,甚至是通过 Sentinel API 定义的代码

  • 规则:有流量控制、熔断降级及系统保护规则,可以动态调整这些规则

  • Context:Sentinel 处理的上下文

  • Node:它统计资源运行时的各种数据。一个 Resource(资源)在同一个 Context 中有且仅有一个 DefaultNode,一个 Resource 全局有且仅有一个 ClusterNode

  • Entry:代表对资源的一次访问。每访问一个资源都会创建一个 Entry

  • ProcessorSlotChain:由各个处理插槽组成的处理插槽链。每个资源在整个服务中对应一个处理插槽链

  • Rule:用户定义的各种规则

  • RuleManager:加载并管理 Rule

  • Slot:插槽。Sentinel 的工作流程就是围绕一个个插槽所组成的插槽链来展开的。每个插槽都有自己的职责,它们各司其职,完美地配置合,通过一定的编排顺序来达到最终限流、降级的目的

2、客户端接入控制台

客户端需要引入 Transport 模块来与 Sentinel 控制台进行通信。可以通过 pom.xml 引入 JAR 包

<dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-transport-simple-http</artifactId> </dependency>

3、支持 Zuul

Sentinel 支持 Zuul,但需要额外加上 Sentinel 对网关支持的依赖

<!--Sentinel 的依赖 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency> <!--Sentinel 对网关支持的依赖 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId> </dependency> <!--Zull 的依赖 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</artifactId> </dependency>

4、支持 Spring Cloud Gateway

Sentinel 支持 Spring Cloud Gateway,但需要额外加上 Sentinel 对网关支持的依赖

<!--Sentinel 的依赖 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency> <!--Sentinel 对网关支持的依赖 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId> </dependency> <!--Spring Cloud Gateway 的依赖 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-gateway</artifactId> </dependency>

5、支持 Endpoint

在使用 Endpoint(端点)之前,需要在 Maven 中添加 Actuator 依赖,并在配置文件中开启对 Endpoint 的访问支持。

在 Sentinel Endpoint 中暴露的信息有:规则信息、日志目录、当前实例的 IP 地址、Sentinel Dashboard 地址、应用与 Sentinel Dashboard 的心跳频率等。

6、安装和启动 Sentinel

步骤:

1、下载 Sentinel 客户端

https://github.com/alibaba/Sentinel/releases

2、启动控制台

java -jar sentinel-dashboard.jar

3、进入控制台

访问 http://localhost:8080 访问控制台,账号和密码都是 sentinel

认识 Sentinel

7、流控规则

进入控制台后,单击左侧导航栏中的 ” 流控规则 ” 按钮可以新建流控规则

认识 Sentinel

流控规则的参数:

参数名 说明
资源名 限流规则的作用对象,如:@SentinelResource 中 Value 字段的值、相对 URI、其他图片文件资源名
流控应用 流控针对的调用来源(服务级别)。若为 default,则不区分调用来源
阀值类型 QPS(每秒查询率)或线程数
单机阀值 限流阀值。超过这个值就执行流控规则
流控模式 直接、关联、链路
流控方式 直接拒绝、Warm Up、匀速排队

7.1、流控模式

基于调用关系的流量控制有 3 种模式:

  • 直接:直接对资源本身进行流量控制

  • 关联:如果多个资源之间具有资源争抢或者依赖关系,则需要设置关联模式。当关联的资源达到阀值时,会限流某个资源的使用,让出系统资源给关联的资源

  • 链路:资源通过调用关系构成一条链路

7.2、流控方式

  • 直接拒绝:当 QPS 或线程数超过规则的阀值后,新的请求会被拒绝,抛出 FlowException。这种方式适用于已经知道系统处理能力的情况

  • Warm Up:流量突然增加可能把系统压垮。可以让通过的流量缓慢增加,在一定时间内逐渐增加到阀值上限,给系统一个预热 (Warm Up) 时间,避免系统突然被压垮

  • 匀速排列:严格控制请求通过的间隔时间,让请求均速通过。这种方式主要用于处理间隔性突发的流量。如果在某一秒有大量的请求到来,而接下来的几秒则处于空闲状态,则可以让这些请求在接下来的空闲期间被逐渐处理,而不是在第一秒直接拒绝多余的请求

8、降级规则

Sentinel 还提供了降级规则来处理流控

认识 Sentinel

重要概念:

  • RT(Response Time):当请求的时间大于阀值时,断路器打开,返回请求失败,直到时间窗口设置的时间结束后才关闭降级。RT 默认上限是 4900ms

  • 异常比例:资源接近 1 分钟的异常数目超过阀值后会进行降级。它统计时间窗口是 ” 分钟 ” 级别,所以时间窗口最好大于 60s, 异常比率的阀值范围是[0.0,1.0],代表 0 -100%

9、系统规则

系统保护规则是应用整体维度,而不是资源维度。它仅对入口流量生效。

认识 Sentinel

阀值类型:

  • LOAD:当系统 LOAD(一分钟的负载)超过阀值,且系统当前的并发线程数超过系统容量时才会触发系统保护

  • RT:所有入口流量的平均 RT

  • 线程数:所有入口流量的并发线程数

  • QPS:所有入口流量的 QPS

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-06-06发表,共计3457字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7982248
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...
星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛 NAS-7:手把手教你免费内网穿透 -Cloudflare tunnel 前言 大家好,我是星...
【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024 程序员】我劝你赶紧去免费领一个 AWS、华为云等的主机 每年 10 月 24 日,程序员们都会迎来...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...