安装Sentinel控制台与初始化演示工程

news2024/11/26 12:37:05

目录

一、Sentinel

二、安装Sentinel控制台

(一)sentinel组件由2部分构成

(二)安装步骤

三、初始化演示工程

四、流控模式

(一)快速失败

(二)关联资源

(三)链路

(四)预热(Warm Up)

(五)排队等待


一、Sentinel

官网:GitHub - alibaba/Sentinel: A powerful flow control component enabling reliability, resilience and monitoring for microservices. (面向云原生微服务的高可用流控防护组件)

中文文档:https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D 

 理解为Hystrix的加强版即可

下载地址:https://github.com/alibaba/Sentinel/releases 

Spring Cloud Alibaba Reference Documentation (spring-cloud-alibaba-group.github.io) 

解决服务使用中的各种问题:

服务雪崩、服务降级、服务熔断、服务限流

二、安装Sentinel控制台

(一)sentinel组件由2部分构成

后台以及前台8080

(二)安装步骤

下载地址:https://github.com/alibaba/Sentinel/releases

下载到本地sentinel-dashboard-1.7.0.jar

前提:java8环境OK  8080端口不能被占用

以jar包方式运行

java -jar sentinel-dashboard-1.7.0.jar

访问sentinel管理界面

登录账号密码均为sentinel

http://localhost:8080

 

 

三、初始化演示工程

nacos要先启动成功

新建module cloudalibaba-sentinel-service8401

POM

<dependencies>
        <!--SpringCloud ailibaba nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--SpringCloud ailibaba sentinel-datasource-nacos 后续做持久化用到-->
        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-datasource-nacos</artifactId>
        </dependency>
        <!--SpringCloud ailibaba sentinel -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
        <!--openfeign-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <!-- SpringBoot整合Web组件+actuator -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--日常通用jar包配置-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>4.6.3</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

    </dependencies>

YML

server:
  port: 8401

spring:
  application:
    name: cloudalibaba-sentinel-service
  cloud:
    nacos:
      discovery:
        #Nacos服务注册中心地址
        server-addr: localhost:8848
    sentinel:
      transport:
        #配置Sentinel dashboard地址
        dashboard: localhost:8080
        #默认8719端口,假如被占用会自动从8719开始依次+1扫描,直至找到未被占用的端口
        port: 8719

management:
  endpoints:
    web:
      exposure:
        include: '*'


 
 

 主启动

@EnableDiscoveryClient
@SpringBootApplication
public class MainApp8401
{
    public static void main(String[] args) {
        SpringApplication.run(MainApp8401.class, args);
    }
}

业务类FlowLimitController 

@RestController
public class FlowLimitController
{

    @GetMapping("/testA")
    public String testA()
    {
        return "------testA";
    }

    @GetMapping("/testB")
    public String testB()
    {
        return "------testB";
    }
}

启动Sentinel8080后启动该微服务

因为Sentinel采用的是懒加载方式,所以我们需要先访问微服务的方法,Sentinel控制台才会出现监控 

 

四、流控模式

基本介绍

 

(一)快速失败

快速失败(QPS)

快速失败(线程)

这里使线程睡眠模仿业务

    @GetMapping("/testA")
    public String testA()
    {
        try {
            TimeUnit.MILLISECONDS.sleep(1000);
        } catch (Exception e) {
            System.out.println(e);
        }
        return "------testA";
    }

开两个页面访问,当一个页面业务未解决完毕,别的线程被限流 

 (二)关联资源

当关联的资源达到阈值时,就限流自己。比如,当与订单接口关联的资源支付接口达到阀值后,就限流订单接口自己

设置效果
当关联资源/testB的qps阀值超过1时,就限流/testA的Rest访问地址,当关联资源到阈值后限制配置好的资源名

使用postman模拟并发密集访问testB

先测试访问testB成功,这里要点击一下save保存请求内容

 

 postman里新建多线程集合组

将访问地址添加进新新线程组 

Run 

 A被限流了

(三)链路

链路:阈值统计时,只统计从指定资源进入当前资源的请求,是对请求来源的限流

sentinel流控规则_机智的爆爆哥的博客-CSDN博客

 Sentinel 链路流控模式失效 · Issue #1213 · alibaba/Sentinel (github.com)

(四)预热(Warm Up)

官网:流量控制 · alibaba/Sentinel Wiki (github.com)

解释:默认coldFactor为3,即请求 QPS 从 threshold / 3 开始,经预热时长逐渐升至设定的 QPS 阈值。 

案例,阀值为10+预热时长设置5秒。
系统初始化的阀值为10 / 3 约等于3,即阀值刚开始为3;然后过了5秒后阀值才慢慢升高恢复到10

应用场景

秒杀系统在开启的瞬间,会有很多流量上来,很有可能把系统打死,预热方式就是把为了保护系统,可慢慢的把流量放进来,慢慢的把阀值增长到设置的阀值。
 

(五)排队等待

匀速排队,阈值必须设置为QPS

官网

 

设置含义:/testA每秒1次请求,超过的话就排队等待,等待的超时时间为20000毫秒。

测试

 

 

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

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

相关文章

第四章——随机变量的数字特征

文章目录1、数字特征的定义2、数学期望&#xff08;均值&#xff09;2.1、数学期望的定义及性质2.1.1、定义2.1.2、性质2.2、数学期望相关例题2.3、Yg(X)的数学期望2.4、Zg(X,Y)的数学期望2.5、随机变量函数的数学期望例题3、方差3.1、方差的定义与性质3.2、相关例题3.3、切比雪…

3.2 埃尔米特转置

定义 对于复矩阵&#xff0c;转置又不一样&#xff0c;常见的操作是共轭转置&#xff0c;也叫埃尔米特转置Hermitian transpose。埃尔米特转置就是对矩阵先共轭&#xff0c;再转置&#xff0c;一般来说用三种符号表示埃尔米特转置&#xff1a; 第一种符号是AHA^HAH&#xff0c…

热门盘点 | 10款评分最高的项目管理工具

项目管理软件可以让项目经理及时掌握项目进展可把复杂的任务分解简单帮助项目经理及时了解整个团队进展随着现代项目需求日趋复杂和个性选一个好的项目管理软件还是很有必要的① PingCode国内研发项目管理软件PingCode&#xff0c;它是国内软件研发项目榜单中评分最高的项目管理…

达梦实现高可用性的实现(failover功能/负载均衡/虚拟ip透明切换)

达梦实现高可用性的实现&#xff08;failover功能/负载均衡/虚拟ip透明切换&#xff09;一&#xff1a;failover功能&#xff1a;基于守护进程和监视器两个内在工具实现守护进程监视器&#xff1a;数据守护和读写分离集群共享存储集群二&#xff1a;负载均衡&#xff1a;基于jd…

在线支付系列【22】微信支付实战篇之集成服务商API

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 文章目录前言1. 环境搭建2. 特约商户进件3. 统一下单总结前言 在上篇文档中&#xff0c;我们做好了接入前准备工作&#xff0c;接下来使用开源框架集成服务商相关API。 一个简单的支付系统完成支付流程…

火爆全网的ChatGPT使用教程

最近&#xff0c;大家有没有被ChatGPT所刷屏呢&#xff1f;记得之前元宇宙刚出来的时候&#xff0c;也是极其火爆&#xff0c;虽说这二者是不同的性质&#xff0c;但是都是代表着当下互联网发展之迅速。 一、什么是ChatGPT 百度百科中给出的解释&#xff1a;ChatGPT&#xff0…

【Explain详解与索引优化最佳实践】

摘要 explain命令是查看MySQL查询优化器如何执行查询的主要方法&#xff0c;可以很好的分析SQL语句的执行情况。每当遇到执行慢&#xff08;在业务角度&#xff09;的SQL&#xff0c;都可以使用explain检查SQL的执行情况&#xff0c;并根据explain的结果相应的去调优SQL等。 …

LabVIEW中加载.NET 2.0,3.0和3.5程序集

LabVIEW中加载.NET 2.0,3.0和3.5程序集已使用.NETFramework 2.0,3.0或3.5创建了.NET程序集&#xff0c;但是当尝试在构造函数节点中加载这些程序集时&#xff0c;却收到LabVIEW消息显示: 所选文件不是.NET程序集&#xff0c;所属类型库或自动化可执行文件。所以想确认是否可以在…

多线程环境下的伪共享

今天和大家聊一聊伪共享 1.什么是伪共享&#xff1f; 缓存一致性协议在计算机中针对的最小单元&#xff1a;缓存行&#xff0c;每个缓存行的大小是64字节&#xff0c;一串连续的64字节数据都会存储到缓存行中。 假设数据A和数据B在同一缓存行中&#xff0c;CPU1修改了数据A&am…

你每天所做的工作,让你产生了成就感吗?

我们是为了什么而工作&#xff1f;金钱&#xff1f;理想&#xff1f;生活&#xff1f; 似乎这一切都没有标准答案&#xff0c;你自己问你自己&#xff0c;问问你自己&#xff0c;每天踏入公司&#xff0c;坐到工位面前&#xff0c;你最真实的感受是什么&#xff1f; “成就感…

OpenHarmony 3.2 Beta多媒体系列——视频录制

一、简介媒体子系统为开发者提供了媒体相关的很多功能&#xff0c;本文针对其中的视频录制功能做个详细的介绍。首先&#xff0c;我将通过媒体子系统提供的视频录制Test代码作为切入点&#xff0c;给大家梳理一下整个录制的流程。二、目录foundation/multimedia/camera_framewo…

今天面了个字节拿 38K 出来的测试,让我见识到了基础的天花板

前言 人人都有大厂梦&#xff0c;对于软件测试人员来说&#xff0c;BAT 为首的一线互联网公司肯定是自己的心仪对象&#xff0c;毕竟能到这些大厂工作&#xff0c;不仅薪资高待遇好&#xff0c;而且能力技术都能够得到提升&#xff0c;最关键的是还能够给自己镀上一层金&#…

webpack新手入门

前言&#xff1a; 如何配置webpack呢&#xff1f; webpack概念有哪些呢&#xff1f; 怎么快速理解并使用webpack呢&#xff1f; 文章目录一. 什么是webpack二. 安装webpack三. webpack的五个核心概念四. webpack配置五. loader加载器1. css处理2. 处理文件&#xff08;图片&…

内网渗透(十二)之内网信息收集-内网端口扫描和发现

系列文章第一章节之基础知识篇 内网渗透(一)之基础知识-内网渗透介绍和概述 内网渗透(二)之基础知识-工作组介绍 内网渗透(三)之基础知识-域环境的介绍和优点 内网渗透(四)之基础知识-搭建域环境 内网渗透(五)之基础知识-Active Directory活动目录介绍和使用 内网渗透(六)之基…

FOXCONN的第一天 记录 转型的前奏

2023年春&#xff0c;我来到美丽富饶的威海小城&#xff0c;开始了我的foxconn之旅&#xff0c;刚毕业那阵来过之后&#xff0c;再一次参与这个价值10个亿的项目&#xff0c;首先要致敬郭老板&#xff0c;好久不见。然后致敬一下曾经的工友们&#xff0c;再次致敬一下逝去的SAP…

2023年全国数据治理DAMA-CDGA/CDGP考试报名到弘博创新

弘博创新是DAMA中国授权的数据治理人才培养基地&#xff0c;贴合市场需求定制教学体系&#xff0c;采用行业资深名师授课&#xff0c;理论与实践案例相结合&#xff0c;快速全面提升个人/企业数据治理专业知识与实践经验&#xff0c;通过考试还能获得数据专业领域证书。 DAMA认…

分布式高级篇4 —— 商城业务(2)

一、订单服务1、订单基本概念2、订单基本构成3、订单状态4、订单流程5、配置拦截器拦截订单请求6、订单确认页模型抽取7、订单确认页vo封装8、Feign 远程调用请求头丢失问题\*\*\*\*\* 惨痛教训9、Feign 异步调用请求头丢失问题10、查看库存状态11、模拟计算运费12、接口幂等性…

智能优化算法——粒子群优化算法(PSO)(小白也能看懂)

前言&#xff1a; 暑假期间&#xff0c;因科研需要&#xff0c;经常在论文中看到各种优化算法&#xff0c;所以自己学习了一些智能优化的算法&#xff0c;做了一些相关的纸质性笔记&#xff0c;寒假一看感觉又有点遗忘了&#xff0c;并且笔记不方便随时查看&#xff0c;所以希…

受ChatGPT影响,唐磊数字签名照经和合国际提升100倍

如果有人问二十年前什么最火&#xff0c;相信很多人会说唐磊的《丁香花》&#xff0c;如果有人问去年什么最火&#xff0c;很多人会把目光投向袁树雄的《早安隆回》。这也充分说明一个问题&#xff0c;世间的万事万物&#xff0c;都不会永远火爆下去&#xff0c;总有一天会被新…

网络安全实验室4.注入关

4.注入关 1.最简单的SQL注入 url:http://lab1.xseclab.com/sqli2_3265b4852c13383560327d1c31550b60/index.php 查看源代码&#xff0c;登录名为admin 最简单的SQL注入&#xff0c;登录名写入一个常规的注入语句&#xff1a; admin’ or ‘1’1 密码随便填&#xff0c;验证…