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

Springboo整合Sentinel

Springboo整合Sentinel

1.启动Sentinel

java -jar sentinel-dashboard-1.8.6.jar

2.访问localhost:8080到Sentinel管理界面(默认账号和密码都是sentinel)

在这里插入图片描述

3.引入依赖(注意版本对应)

        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2021.0.5.0</version></dependency><!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-sentinel --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId><version>2021.0.5.0</version></dependency>

4.编写配置文件

spring:cloud:sentinel:transport:dashboard: localhost:8080port: 8719
server:port: 8081

这里的spring.cloud.sentinel.transport.port端口配置会在应用对应的服务器上启动一个Http Server,该Server会与Sentinel控制台交互。比如Sentinel控制台添加了一个限流规则,会把规则数据push给这个Http Server接收,Http Server再将规则注册到Sentinel中。

5.编写controller,启动项目

@RestController
public class MyController {@GetMapping("/test01")public String test01(){return "hello sentinel";}
}

Sentinel采用懒加载机制,这时Sentinel控制台中并没有该服务信息,先访问接口,才会在Sentinel控制台中显示。
在这里插入图片描述

Sentinel基本限流规则

1.流控规则

在这里插入图片描述
解释说明:
资源名:唯一名称,默认请求路径
针对来源:Sentinel可以针对调用者进行限流,填写微服务名称(需要将服务注册到服务中心),默认default(不区分来源)
阈值类型/单机阈值:
- QPS(每秒的请求数量):当调用api的QPS达到阈值的时候,进行限流。
- 线程数:当调用该api的线程数达到阈值的时候,进行限流
是否集群:不需要集群
流控模式:
- 直接:api达到限流条件时,直接限流
- 关联:当关联的资源达到阈值时,就限流自己
- 链路:只记录指定链路上的流量(指定资源从入口资源进来的流量,如果达到阈值,就进行限流)【api级别的针对来源】
流控效果:
- 快速失败:直接失败,抛异常
- Warm Up:根据codeFactor(冷加载因子,默认3)的值,从阈值/codeFactor,经过预热时长,才达到设置的QPS阈值
- 排队等待:匀速排队,让请求以匀速的速度通过,阈值类型必须设置QPS,否则无效

2.降级规则

1.慢调用比例

在这里插入图片描述
慢调用比例:选择以慢调用比例作为阈值,需要设置慢调用比例作为阈值,需要设置允许的慢调用RT(即最大响应时间),响应时间大于该值则统计为慢调用。当单位统计时长内请求数目大于设置的最小请求数目,并且慢调用的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后的熔断器会进入探测恢复状态(HALF-OPEN状态),若接下来的请求响应时间小于设置的慢调用RT,则结束熔断,若大于设置的慢调用RT,则会再次被熔断。

2.异常比例

在这里插入图片描述
异常比例:当单位统计时长内请求数目大于设置的最小请求数目,并且异常数比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后,熔断器会进入探测恢复状态(HALF-OPEN状态),若接下来的请求成功完成(没有错误)。则结束熔断,否则会再次被熔断。

3.异常数

在这里插入图片描述
异常数:当单位统计时长内的异常数目超过阈值后会自动熔断,经过熔断时长后,熔断器会进入探测恢复状态(HALF-OPEN状态),若接下来的请求成功完成(没有错误)。则结束熔断,否则会再次被熔断。

热点key限流

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

  • 商品id为参数,统计一段时间内最常购买的商品id并进行限制
  • 用户id为参数,针对一段时间内频繁访问的用户id进行限制

热点参数限流会统计传入参数中的热点参数,并根据配置的限流阈值与模式,对包含热点参数的资源调用进行限流。热点参数限流可以看做是一种特殊的流量限制,仅对包含热点参数的资源调用

在这里插入图片描述

1.使用@SentinelResource实现自定义限流与熔断

controller代码

@RestController
public class MyController {@GetMapping("/test01")@SentinelResource(value = "test01",blockHandlerClass = MyHandler.class,blockHandler = "test01block",fallbackClass = MyHandler.class,fallback = "test01Fallback")public String test01(@RequestParam String uid){return "hello sentinel";}
}

handler代码(注意:自定义处理类中的限流与熔断方法必须是public static)

public class MyHandler {public static String test01block(BlockException blockException){return "自定义限流";}public static String test01Fallback(Exception e ){return "自定义熔断";}
}

添加配置(资源名要与 @SentinelResource的value相同)

在这里插入图片描述
blockHandler处理Sentinel控制台方面配置的异常,fallback处理代码的异常。

相关文章:

Springboo整合Sentinel

Springboo整合Sentinel 1.启动Sentinel java -jar sentinel-dashboard-1.8.6.jar2.访问localhost:8080到Sentinel管理界面(默认账号和密码都是sentinel) 3.引入依赖(注意版本对应) <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spr…...

python爬取csdn个人首页中的所有封面

#爬取csdn个人首页中的所有封面 import requests import json import reurlhttps://blog.csdn.net/community/home-api/v1/get-business-list? headers{User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safar…...

EasyHttp - 网络请求,如斯优雅

官网 项目地址&#xff1a;Github博客地址&#xff1a;网络请求&#xff0c;如斯优雅 OkHttp 另外对 OkHttp 原理感兴趣的同学推荐你看以下源码分析文章 OkHttp 精讲&#xff1a;拦截器执行原理OkHttp 精讲&#xff1a;RetryAndFollowUpInterceptorOkHttp 精讲&#xff1a;…...

【Java】Stream的基本使用

Stream特点 Stream的一系列操作组成了Stream的流水线, Stream流水线包含: 数据源: 这里的数据源可能是集合/数组, 可能是生成器, 甚至可能是IO通道(Files.lines)零个或多个中间操作: 中间操作会导致流之间的转化, 如filter(Predicate)一个终端操作: 终端操作会产生最终所需要的…...

idea Springboot 高校科研资源共享系统VS开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot 高校科研资源共享系统是一套完善的信息系统&#xff0c;结合springboot框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09;&#xff0c; 系统具有完整的源代码和数据…...

机器学习算法基础--K-means应用实战--图像分割

目录 1.项目内容介绍 2.项目关键代码 3.项目效果展示 1.项目内容介绍 本项目是将一张图片进行k-means分类&#xff0c;根据色彩k进行分类&#xff0c;最后比较和原图的效果。 题目还是比较简单的&#xff0c;我们只要通过k-means聚类&#xff0c;一类就是一种色彩得出聚类之…...

CSS学习小结

css的两种使用方式&#xff1a; ①内嵌样式表 ②导入外部样式表&#xff08;实际开发常用&#xff09;<link href"...." rel"stylesheet"/> 选择器&#xff1a; ①标签选择器&#xff1a;通过标签种类决定 ②类选择器&#xff1a;class"..…...

数据挖掘实验(一)数据规范化【最小-最大规范化、零-均值规范化、小数定标规范化】

一、数据规范化的原理 数据规范化处理是数据挖掘的一项基础工作。不同的属性变量往往具有不同的取值范围&#xff0c;数值间的差别可能很大&#xff0c;不进行处理可能会影响到数据分析的结果。为了消除指标之间由于取值范围带来的差异&#xff0c;需要进行标准化处理。将数据…...

C++17中std::filesystem::directory_entry的使用

C17引入了std::filesystem库(文件系统库, filesystem library)。这里整理下std::filesystem::directory_entry的使用。 std::filesystem::directory_entry&#xff0c;目录项&#xff0c;获取文件属性。此directory_entry类主要用法包括&#xff1a; (1).构造函数、…...

C/C++跨平台构建工具CMake入门

文章目录 1.概述2.环境准备2.1 安装编译工具2.2 安装CMake 3.编译一个示例程序总结 1.概述 本人一直对OpenGL的3d渲染很感兴趣&#xff0c;但是苦于自己一直是Android开发&#xff0c;没有机会接触这方面的知识。就在最近吗&#xff0c;机会来了&#xff0c;以前一个做3D渲染的…...

【CFD小工坊】浅水方程的离散及求解方法

【CFD小工坊】浅水方程的离散及求解方法 前言基于有限体积法的方程离散界面通量与源项计算干-湿网格的处理数值离散的稳定性条件参考文献 前言 我们模型的控制方程&#xff0c;即浅水方程组的表达式如下&#xff1a; ∂ U ∂ t ∂ E ( U ) ∂ x ∂ G ( U ) ∂ y S ( U ) U…...

第十四章 类和对象——C++对象模型和this指针

一、成员变量和成员函数分开存储 在C中&#xff0c;类内的成员变量和成员函数分开存储 只有非静态成员变量才属于类的对象上 class Person {public:Person() {mA 0;}//非静态成员变量占对象空间int mA;//静态成员变量不占对象空间static int mB; //函数也不占对象空间&#…...

计算机竞赛 深度学习卫星遥感图像检测与识别 -opencv python 目标检测

文章目录 0 前言1 课题背景2 实现效果3 Yolov5算法4 数据处理和训练5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **深度学习卫星遥感图像检测与识别 ** 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐…...

java web+Mysql e-life智能生活小区物业管理系统

本项目为本人自己书写&#xff0c;主要服务小区业主和管理人员。 e-life智能生活小区涉及多个方面的智能化和便利化服务&#xff1a; 1. 用户模块&#xff1a;包含基本的登入登出操作&#xff0c;查看个人信息中用户可以查看 自己的个人资料但不可以修改个人信息。 a) 用户…...

AttributeError: module ‘dgl‘ has no attribute ‘batch_hetero‘

DGLWarning: From v0.5, DGLHeteroGraph is merged into DGLGraph. You can safely replace dgl.batch_hetero with dgl.batch...

Vue项目搭建图文详解教程

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 预备工作 请在本地创建文件夹用于存放Vue项目&#xff0c;例如&#xff1a;创建HelloWorld文件夹存放即将创建的Vue新项目。 创建Vue项目 首先&#xff0c;请在DOS中将目录…...

SpringMVC处理请求核心流程

一、前言 SpringMVC是一个基于Java的Web框架&#xff0c;它使用MVC&#xff08;Model-View-Controller&#xff09;设计模式来处理Web请求。在SpringMVC中&#xff0c;请求处理的核心流程主要包括以下几个步骤&#xff1a; 1、用户发送请求到前端控制器&#xff08;Dispatche…...

SoloX:Android和iOS性能数据的实时采集工具

SoloX&#xff1a;Android和iOS性能数据的实时采集工具 github地址&#xff1a;https://github.com/smart-test-ti/SoloX 最新版本&#xff1a;V2.7.6 一、SoloX简介 SoloX是开源的Android/iOS性能数据的实时采集工具&#xff0c;目前主要功能特点&#xff1a; 无需ROOT/越狱…...

【知识点随笔分析 | 第五篇】简单介绍什么是QUIC

前言&#xff1a; 随着互联网的快速发展&#xff0c;传统的基于TCP的协议开始显现出一些局限性。TCP在连接建立和拥塞控制方面存在一定的延迟&#xff0c;这可能导致用户在访问网页、观看视频或玩网络游戏时感受到不必要的等待时间。而QUIC作为一种新兴的传输协议&#xff0c;试…...

vscode ssh 远程免密登录开发

存放代码的机器运行 sshd, vscode 所在机器保证可以通过 ssh 登录服务器vscode 机器通过 ssh-keygen 生成 ssh 公私钥对(已有可以忽略)将客户端的 id_rsa.pub 加入到服务器的鉴权队列 cat id_rsa.pub >> authorized_keysvscode 配置ssh登录即可.ctrlp, remote-ssh: open …...

Java大厂面试实战:电商高并发场景下的Spring Boot+Redis+Kafka技术栈深度解析

Java大厂面试实战&#xff1a;电商高并发场景下的技术栈深度解析 前言 在互联网大厂面试中&#xff0c;技术面试官往往会结合具体业务场景来考察候选人的技术深度和广度。本文模拟了一场电商场景下的Java技术面试&#xff0c;通过面试官与求职者"谢飞机"的三轮对话&a…...

【实战教程】OpenClaw从零开始配置指南:从边界到稳定的分层配置策略

本文适合从零开始&#xff0c;慢慢养、安全的养小龙虾的达人们。 更深入的调优配置请参考&#xff1a;Openclaw高阶调优之配置篇、OpenClaw高阶调优之模型&#xff08;tokens&#xff09;篇 核心理念 OpenClaw 配置的核心不是堆砌字段&#xff0c;而是对系统边界的精准管控。…...

3个高效学习技巧:如何用JiYuTrainer实现课堂学习体验优化

3个高效学习技巧&#xff1a;如何用JiYuTrainer实现课堂学习体验优化 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer 问题场景&#xff1a;当数字化教学遇上学习需求冲突 "…...

树莓派4b(armv8) 64位系统源码编译onnx实战指南

1. 环境准备&#xff1a;从零搭建树莓派4B开发环境 在树莓派4B上编译ONNX源码之前&#xff0c;我们需要先确保系统环境配置正确。我用的是一台4GB内存版本的树莓派4B&#xff0c;系统是最新的Raspberry Pi OS 64位版本。这里有个小细节要注意&#xff1a;很多教程还在用32位系统…...

终极Modbus测试工具:OpenModScan让工业通讯调试变得前所未有的简单

终极Modbus测试工具&#xff1a;OpenModScan让工业通讯调试变得前所未有的简单 【免费下载链接】OpenModScan Open ModScan is a Free Modbus Master (Client) Utility 项目地址: https://gitcode.com/gh_mirrors/op/OpenModScan 在工业自动化领域&#xff0c;Modbus协议…...

基于策略模式与智能编排的抖音批量下载系统架构设计与实现

基于策略模式与智能编排的抖音批量下载系统架构设计与实现 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 在当今内容驱动的互联网时代&#xff0c;抖音平台汇聚了海量的短视频内容。对于内容创作者、研究者…...

用2万小时人类视频预训练机器人,一场豪赌还是必经之路?

先说结论核心验证了“人类数据缩放定律”&#xff1a;在灵巧操作任务上&#xff0c;模型性能随人类预训练数据量对数线性增长&#xff0c;为数据策略提供了可预测的依据。成功的关键在于“两阶段迁移”设计&#xff1a;用大规模、廉价但“嘈杂”的人类数据奠基通用结构&#xf…...

从原理到调参:图解RoIAlign双线性插值在torchvision.ops中的实现细节

从原理到调参&#xff1a;图解RoIAlign双线性插值在torchvision.ops中的实现细节 当你在PyTorch中实现目标检测模型时&#xff0c;RoIAlign&#xff08;Region of Interest Align&#xff09;是一个绕不开的核心操作。与传统的RoIPooling相比&#xff0c;RoIAlign通过双线性插值…...

Axure RP中文语言包:3分钟快速汉化你的原型设计工具

Axure RP中文语言包&#xff1a;3分钟快速汉化你的原型设计工具 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包&#xff0c;不定期更新。支持 Axure 9、Axure 10。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 对于…...

macOS歌词解决方案:LyricsX从安装到精通的全方位指南

macOS歌词解决方案&#xff1a;LyricsX从安装到精通的全方位指南 【免费下载链接】LyricsX &#x1f3b6; Ultimate lyrics app for macOS. 项目地址: https://gitcode.com/gh_mirrors/ly/LyricsX 在数字音乐体验中&#xff0c;歌词同步显示是提升沉浸感的关键要素。然而…...