Alibaba Sentinel | 流控规则设置
文章目录
- 一、Sentinel概述
- 强大的优势:
- 组成部分:
- 二、微服务集成Sentinel
- 版本说明
- 安装Sentinel控制台:
- 1、docke安装
- 2、jar安装
- 启动控制台
- 微服务集成Sentinel:
- 查看控制台监控数据
- 三、流控规则详解
- 流量控制概述
- 什么是流控规则
- 原理:
- 配置流控规则:
- 参数说明
Sentinel(卫兵)是阿里开源的一套用于服务容错的综合性解决方案。
本篇文章会从以下几个方面着重讲解:
- Sentinel概述
- 微服务集成Sentinel
- 流控规则详解
一、Sentinel概述
强大的优势:
1、丰富的应用场景:
Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景, 例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用 应用等。
2、完备的实时监控:
Sentinel 提供了实时的监控功能。通过控制台可以看到接入应用的单台机器秒级数据, 甚至 500 台以下规模的集群的汇总运行情况。
3、广泛的开源生态:
Sentinel 提供开箱即用的与其它开源框架/库的整合模块, 例如与 Spring Cloud、Dubbo、gRPC 的整合。只需要引入相应的依赖并进行简单的配置即可快速地接入Sentinel。
4、完善的 SPI 扩展点:
Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。
组成部分:
Sentinel 分为两个部分:
核心库(Java 客户端)
不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。
控制台(Dashboard)
基于 Spring Boot 开发,打包后可以直接运行,不需要额外的 Tomcat 等应用容器。
二、微服务集成Sentinel
版本说明
- sentinel-dashboard:1.8.4
- spring-boot-starter-parent:2.3.12.RELEASE
- spring-cloud-dependencies:Hoxton.SR12
- spring-cloud-alibaba-dependencies:2.2.8.RELEASE
安装Sentinel控制台:
Sentinel 提供一个轻量级的控制台, 它提供机器发现、单机资源实时监控以及规则管理等功能。
1、docke安装
直接运行命令:
docker run \
--name sentinel \
--restart=always \
-p 8858:8858 \
-v /usr/local/sentinel_home:/home/sentinel_home \
-d bladex/sentinel-dashboard:1.8.4
2、jar安装
- 下载jar包,解压到文件夹
https://github.com/alibaba/Sentinel/releases - 启动控制台,直接使用jar命令启动项目(控制台本身是一个SpringBoot项目)
java -Dserver.port=8858 -Dcsp.sentinel.dashboard.server=localhost:8858 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.7.0.jar
启动控制台
安装启动完毕,通过浏览器访问localhost:8858 进入控制台 ( 默认用户名密码是 sentinel/sentinel )
微服务集成Sentinel:
为微服务集成Sentinel核心库非常简单, 只需要加入Sentinel的依赖即可,版本不写,用springboot提供的默认版本。
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
然后在配置文件中添加控制台的信息
spring: cloud:sentinel: transport:port: 9999 #跟控制台交流的端口,随意指定一个未使用的端口即可dashboard: localhost:8858 # 指定控制台服务的地址
随便调用微服务的一个接口,sentinel就可以监控到该接口的数据。
查看控制台监控数据
打开控制台,查看可能会有延迟,刷新就好
三、流控规则详解
流量控制概述
任意时间到来的请求往往是随机不可控的,而系统的处理能力是有限的,我们需要根据系统的处理能力对流量进行控制。
Sentinel从以下两个方面的数量,对流量进行控制:
QPS:每秒查询率
线程数:并发线程个数
什么是流控规则
原理:
其原理是监控应用流量的QPS(每秒查询个数) 或并发线程数等指标,当达到指定的阈值(规定的大小)时对流量进行控制。以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性。
配置流控规则:
参数说明
- 资源名:
- 某个接口,默认请求路径(如:http://localhost:8089/testA)
- 针对来源:
- 针对调用者进行限流,填写微服务名,指定对哪个微服务进行限流 ,默认default(不区分来源,全部限制)
- 阈值类型和阈值:
- QPS:每秒钟的请求数量,当调用该接口的QPS达到了阈值(某个数量)的时候,实现流控效果。
- 并发线程数:当调用该接口的线程数达到阈值(某个数量)时,请求直接失败。
- 流控模式(限制谁):
- 直接:就限制设置的资源
- 关联:设置一个关联的资源,关联的资源达到阈值时,就限制设置的资源
- 链路:规定一个入口,设置的资源的流量达到阈值,就限制入口的资源
- 流控效果(设置为QPS时可配):
快速失败:请求直接失败 (返回429)
Warm up:请求 QPS 从 阈值 / 3 开始,还会设置一个预热时长,在预热时间中逐渐升至设定的 QPS 阈值。也就是允许通过的请求数量由少逐渐变多,有一个缓冲的效果。
排队等待:阈值为每秒通过数量,多余的请求会排队等待(挂起),还会设置一个超时时间,当请求超过超时间时间还未处理,请求就被丢弃了(已取消)
Alibaba Sentinel | 流控规则设置相关推荐
- Spring Cloud Alibaba:Sentinel 流控规则
文章目录 1. 前言 2. 阈值类型 2.1 QPS 2.2 线程数 3. 流控模式 3.1 直接 3.2 关联 3.3 链路 4. 流控效果 4.1 快速失败 4.2 Warm Up 4.3 排队等 ...
- Sentinel流控规则
Sentinel流控规则 流控规则基本介绍 名词解释 资源名:唯一名称,默认请求路径 针对来源:Sentinel可以针对调用者进行限流,填写微服务名,默认default(不区分来源) 阈值类型/单机阈 ...
- 什么?Sentinel流控规则可以这样玩?
点赞再看,养成习惯,微信搜索[牧小农]关注我获取更多资讯,风里雨里,小农等你,很高兴能够成为你的朋友. 项目源码地址:公众号回复 sentinel,即可免费获取源码 前言 上一篇文章中,我们讲解了关于 ...
- Sentinel流控规则_流控等待_分布式系统集群限流_线程数隔离_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0037
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 然后再看一下流控等待这个流控的规则 其实就是,如果流量来了很多,然后,请求,会进行排队,如果超时了 ...
- Sentinel流控规则_线程数失败_分布式系统集群限流_线程数隔离_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0034
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 上节咱们说了,阀值类型是QPS,也就是一秒钟可以访问的次数,然后流控模式这里我们用的是直接,也就是 ...
- Sentinel流控规则_QPS直接失败_分布式系统集群限流_线程数隔离_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0033
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 好上节课,咱们说了一下流量控制的的介绍,下面咱们开始配置, 流控的规则,首先先看第一点,就是流控, ...
- Sentinel流控规则简介_分布式系统集群限流_线程数隔离_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0032
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 上节,我们配置好了sentinel的监控,启动了一个微服务,看了效果 然后接下来我们去点击这个簇点 ...
- Sentinel流控规则_预热_分布式系统集群限流_线程数隔离_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0036
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 上面咱们说了流控的,直接失败,QPS流控和线程数流控,还有关联流控 然后这次咱们来说一下这个war ...
- Sentinel流控规则_关联_分布式系统集群限流_线程数隔离_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0035
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 这里我们再看这个关联的意思 当关联的资源达到阀值的时候就限流自己 比如我们设置支付接口达到阀值以后 ...
最新文章
- LeetCode实战:逆波兰表达式求值
- uniapp的目录结构反思与整理 app.vue【base】pages.json【配置】main.json【框架入口文件】
- http长/短轮询和WebSocket 的介绍和比较
- maven aspectj_使用Spring AspectJ和Maven进行面向方面的编程
- Google Code Jam 2015 Round 1A Haircut 二分
- python随机生成字符串_python 随机生成字符串数据
- Qt文档阅读笔记-Qt Core的官方解析
- 全国2009年1月电子商务与电子政务试题
- PLSQL只导出表结构
- 云服务商拿来主义或大限将至,Elastic 表示将变更开源许可协议并进行诉讼
- linux虚拟串口控制器实现---适用于无开发板学习tty driver
- JavaScript基础--DOM部分02--李南江
- 【python】使用python绘制地图时手动添加比例尺
- 简易网页版进程管理器(支持手机管理电脑进程)
- @PostMapping注解解析
- IC验证工具:Ubuntu下Questasim10.7安装(64bit)全攻略
- 霞浦职业中专学校计算机专业,霞浦职业中专学校
- 使用three.js加载obj+mtl文件
- kali linux 修改用户名密码
- sja1000 中断_SJA1000中断接收为什么接收中断不能被触发,不能进入中断接收子函数?看资料,里面说会自动触发中断的。...
热门文章
- 为X86架构的安卓平板修补boot.img,使其能够使用Magisk
- linux卸载libc6,更新出问题,libc6-dev : 依赖: libc6
- 为CV::Mat添加中文
- 2019.5.师徒会总结快键键,和学习工具
- OpenAI ChatGPT API + FaskAPI SSE Stream 流式周转技术 以及前端Fetch 流式请求获取案例
- Shader 锥形扫描遮挡效果
- wireguard服务器配置
- 使用java代码实现简单的ID自增的工具类
- 双非保研大佬的逆袭之路 | 你想要的这里通通有!
- 得金融大数据者得天下,下一个一百亿市场在这里