Alibaba Sentinel | 流控规则设置

news2024/12/26 23:19:23

文章目录

  • 一、Sentinel概述
    • 强大的优势:
    • 组成部分:
  • 二、微服务集成Sentinel
    • 版本说明
    • 安装Sentinel控制台:
      • 1、docke安装
      • 2、jar安装
        • 启动控制台
    • 微服务集成Sentinel:
      • 查看控制台监控数据
  • 三、流控规则详解
    • 流量控制概述
    • 什么是流控规则
      • 原理:
      • 配置流控规则:
      • 参数说明

  Sentinel(卫兵)是阿里开源的一套用于服务容错的综合性解决方案。

  本篇文章会从以下几个方面着重讲解:

  1. Sentinel概述
  2. 微服务集成Sentinel
  3. 流控规则详解

一、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安装

  1. 下载jar包,解压到文件夹
       https://github.com/alibaba/Sentinel/releases
  2. 启动控制台,直接使用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从以下两个方面的数量,对流量进行控制:

  1. QPS:每秒请求个数
  2. 线程数:并发线程个数

什么是流控规则

原理:

  其原理是监控应用流量的QPS(每秒查询个数) 或并发线程数等指标,当达到指定的阈值(规定的大小)时对流量进行控制。以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性。

配置流控规则:

  
在这里插入图片描述
在这里插入图片描述

参数说明

  • 资源名:
    • 某个接口,默认请求路径(如:http://localhost:8089/testA)
  • 针对来源:
    • 针对调用者进行限流,填写微服务名,指定对哪个微服务进行限流 ,默认default(不区分来源,全部限制)
  • 阈值类型和阈值:
    • QPS:每秒钟的请求数量,当调用该接口的QPS达到了阈值(某个数量)的时候,实现流控效果。
    • 并发线程数:当调用该接口的线程数达到阈值(某个数量)时,请求直接失败。
  • 流控模式(限制谁):
    • 直接:就限制设置的资源
    • 关联:设置一个关联的资源,关联的资源达到阈值时,就限制设置的资源
    • 链路:规定一个入口,从该入口进来的流量达到阈值,就限制设置的资源
  • 流控效果(设置为QPS时可配):
    • 快速失败:请求直接失败
    • Warm up:请求 QPS 从 阈值 / 3 开始,还会设置一个预热时长,在预热时间中逐渐升至设定的 QPS 阈值
    • 排队等待:阈值为每秒通过数量,多余的请求会排队等待,还会设置一个超时时间,当请求超过超时间时间还未处理,请求就被丢弃了

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

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

相关文章

接口自动化测试中的用例编写问题总结

目录 01sql语句内容出现错误 02sql语句格式错误 03断言返回数据的类型 04业务逻辑覆盖判断 05一些具体业务需求需要封装api 总结&#xff1a; 本篇文章分享几个接口自动化用例编写过程遇到的问题总结&#xff0c;希望能对初次探索接口自动化测试的小伙伴们解决问题上提供一…

程序员需要达到什么水平才能不被性别歧视?顺利拿到 20k 无压力?

被歧视&#xff0c;不存在&#xff1f; 我是女生&#xff0c;大三&#xff0c;却没人这样对我&#xff0c;因为我从来都是队长!谁敢砍我代码他试试!我就把他砍掉!而且&#xff0c;我写的代码他们很少能看懂&#xff0c;因为我一般都写算法或者一个项目里比较难的部分&#xff…

网络管理与维护(一)

这里写自定义目录标题 管理站网络管理系统组成代理网络管理协议管理信息库 网络管理的功能故障管理配置管理计费管理性能管理安全管理 总结 管理站 网络管理系统组成 代理 代理&#xff08;Agent&#xff09;位于被管理对象中&#xff0c;被管理对象可以是计算机、网络设备&a…

【云原生】云原生架构

文章目录 背景一、云原生二、云原生简介三、三大技术基石3.1、基础设施即代码3.2、不可变基础设施3.3、声明式API 四、云原生的优点4.1、加速软件开发周期4.2、更快的上市时间4.3、高可用性与弹性4.4、更低的成本4.5、将应用程序转变为API 五、云原生架构模式特点详解5.1、现收…

SQL数据库防挂科

注&#xff1a;本篇文章的图片等内容来自B站UP主&#xff1a;编程张无忌 一、绪论 二、关系数据库 三、SQL上 1、模式的定义和删除 单纯定义一个模式&#xff1a; create schema "S-T" authorizationg WANG 定义模式 表/视图/授权 任意一个来描述(创建一个tab…

22JS13——简单类型与复杂类型

文章目录 一、简单类型与复杂类型二、堆和栈三、简单类型的内存分配四、复杂类型的内存分配五、简单类型传参六、复杂类型传参 目标&#xff1a; 1、简单类型与复杂类型 2、堆和栈 3、简单类型的内存分配 4、复杂类型的内存分配 5、简单类型传参 6、复杂类型传参 一、简单类型与…

selenium爬虫运行慢如何解决?

Selenium作为一个强大的自动化工具&#xff0c;可用于编写爬虫程序&#xff0c;尽管Selenium在处理动态网页上非常强大&#xff0c;但对于静态网页爬简单数据提取&#xff0c;使用轻量级库或工具可能更加上所述&#xff0c;Selenium作为一个灵活可定动化工具&#xff0c;在需要…

如何正确使用DTM的Saga模式

DTM 简介 前面章节提及的MassTransit、dotnetcore/CAP都提供了分布式事务的处理能力&#xff0c;但也仅局限于Saga和本地消息表模式的实现。那有没有一个独立的分布式事务解决方案&#xff0c;涵盖多种分布式事务处理模式&#xff0c;如Saga、TCC、XA模式等。有&#xff0c;目…

真正的网工大佬,到底是什么样的?

大家好&#xff0c;我是许公子。 关于到底真正的网工大佬是什么样的&#xff0c;众说纷纭。 刚刚入行的小朋友&#xff0c;可能会觉得&#xff0c;是不是有HCIE的就算是网工大佬啊&#xff1f; 来几个老网工&#xff0c;评论区给他上一课哈哈。 就用这个点&#xff0c;跟你…

5年测试路,在字节终于爬到了半山腰,我不想被淘汰......

软件测试是一个付出就有回报的工作&#xff0c;可能很多人会说软件测试就是吃青春饭&#xff0c;然而其他工作又何尝不是&#xff1f;没有哪一家公司养尸位素餐之人&#xff0c;大龄员工有被辞退的&#xff0c;也有没被辞退的。干任何职业&#xff0c;抱着一劳永逸的心态&#…

MySQL----日志查询、备份与恢复

文章目录 一、MySQL日志管理二、MySQL 完全备份与恢复2.1备份的重要性2.2数据库备份的分类从物理与逻辑的角度从数据库的备份策略角度完全备份 三、MySQL 完全备份与恢复实验3.1物理冷备份与恢复3.2使用MySQL dump工具进行恢复备份恢复数据 3.3增量备份恢复 一、MySQL日志管理 …

LeetCod刷题笔记

目录 2739.总行驶距离 思路&#xff1a;模拟 代码 6890.找出分区值 思路&#xff1a;急转弯 代码: 1254.统计封闭岛屿的数目​编辑 思路&#xff1a;DFS 代码&#xff1a; 6447.给墙壁刷油漆 思路&#xff1a;动态规划 代码&#xff1a; 思路&#xff1a;状态DP 代码&…

Mac配置Android addr2line环境变量以及使用

1.首先进入终端 2.下面这个指令进入vim编辑器&#xff0c;就可以修改环境变量 vim ./.bash_profile3.按i进入insert模式 4.输入路径&#xff1a; arm32: export PATH${PATH}:/Users/xianquan/Library/Android/sdk/ndk/21.1.6352462/toolchains/arm-linux-androideabi-4.9/p…

Vue中如何进行自定义动画与动画效果设计

Vue中如何进行自定义动画与动画效果设计 在Vue中&#xff0c;动画效果是非常有用的&#xff0c;它可以使用户界面变得更加生动、有趣&#xff0c;从而提高用户体验。Vue提供了一套非常方便的动画系统&#xff0c;使得我们可以非常容易地实现动画效果。 在本文中&#xff0c;我…

6.19实训笔记

6.19实训笔记 6.19一、座右铭二、知识回顾2.1 Java集合体系2.2 工具类Utils 三、JavaIO流3.1 File类3.2 File类的使用3.2.1 File文件/文件夹类的创建3.2.2 File类的获取操作3.2.3 File类判断操作--boolean3.2.4 File类对文件/文件夹的增删改3.2.5 、File类的获取子文件夹以及子…

python+appium自动化测试-滑动到固定的位置停止

当前很多APP都存在滑动操作&#xff0c;但这些元素一般无法单独定位到&#xff0c;多为一个数组或列表&#xff0c;这边介绍了几种方法&#xff0c;使元素滑动到你想要的位置后停止。 一、scroll()方法 Appium 中webdriver提供scroll()方法来滚动页面&#xff0c;该方法只适用…

matplotlib---中文显示问题、字体库、图像结构、画布设置

1. 中文显示问题 解决方案一&#xff1a; 下载中文字体&#xff08;黑体&#xff0c;看准系统版本&#xff09; 步骤一&#xff1a;下载 SimHei 字体&#xff08;或者其他的支持中文显示的字体也行&#xff09; 步骤二&#xff1a;安装字体 linux下&#xff1a;拷贝字体到 usr…

三层架构综合实验

目录 拓扑结构&#xff1a; 要求&#xff1a; 确定广播域的个数 分配网段 配置Eth-Trunk 创建VLAN 配置STP生成树协议 修改根 边缘端口 SVI VRRP DHCP 路由部分 OSPF 缺省 汇总 NAT 拓扑结构&#xff1a; 要求&#xff1a; 1、内部IP地址基于172.16.0.0/16进行…

CABAC编解码原理分析

CABAC编解码原理分析 文章目录 CABAC编解码原理分析一、二进制算数编码二、CABAC编码三、CABAC编解码与普通的二元算术编码的区别四、 CABAC编解码中各个变量的计算&#xff1a;五、 一些其他问题&#xff1a;六、 总结&#xff1a;七、参考资料 一、二进制算数编码 cabac是一…

Nginx网络服务的配置

目录 一、Nginx概述 二、Nginx相对于Apache的优点 三、配置Nginx网络服务 1.编译安装和启用Nginx服务 2.修改Nginx主配置文件 一、Nginx概述 Nginx是一款高性能、轻量级Web服务软件。稳定性高&#xff0c;系统资源消耗低&#xff0c;对HTTP并发连接的处理能力高&#xff…