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

微服务组件详解——sentinel

1.启动sentinel:

下载jar sentinel-dashboard-1.8.0.jar

使用以下命令直接运行 jar 包(JDK 版本必须≥ 1.8):

java -Dserver.port=9999 -jar D:\sentinel-dashboard-1.8.0.jar

控制台访问地址:http://localhost:9999,默认账号密码都为 sentinel/sentinel

1.导入依赖:
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
2.在alibaba-user-consumer-8090项目的application.yml编写代码
spring:cloud:sentinel:transport:port: 8719 #sentinel控制台端口dashboard: 127.0.0.1:9999 #sentinel控制台地址enable: true #开启sentinel 默认trueeager: true #取消控制台懒加载 立即初始化
3.监控

这个是实时刷新的,所以点击网址之后等几秒就行

2.流量控制

普通流控:

资源名:请求路径

阈值类型: QPS: 即每秒查询率, 线程数:用

因为是用手测试,所以选QPS

效果:会显示429代表 “Too Many Requests”,即 “请求过多”

关联:(反向关联):

点击高级选项

当sout的阈值超过到1时,demo不可用。(吧demo的资源节省出来给sout)

流控效果:

快速失败:抛异常

方式是默认的流量控制方式,当QPS超过任意规则的阈值后,新的请求就会被立即拒绝,拒绝方

式为抛出 FlowException 。

WarmUp:慢慢增加到阈值

WarmUp 旨在避免因为流量突增或系统负载过高导致的拒绝服务问题。通过“热身”过程,系统逐步适应流量的增加,避免瞬间流量过载。

通过动态控制请求的通过率(例如,限制请求的通过比例),逐渐放开流量限制,避免系统立即面对过多请求的压力。

例如,可以设定初始通过率为 20%,然后逐步提升到 100%,这样系统就能平稳适应流量增长。

排队等待:匀速排队处理

排队等待 是 Sentinel 提供的另一种流量控制策略,用于限制并发请求的数量,并确保在系统负载较高时不会直接拒绝请求,而是让请求在队列中等待,直到系统能够处理它们。

注意:匀速排队模式暂时不支持 QPS > 1000 的场景

3.熔断降级:

这里还没写熔断降级的方法,

选项解析:

最大RT:默认毫秒,请求超出时长

比例阈值:: 当每秒请求量>=N(可配置),并且每秒异常总数占通过量的比值超过阈值之后,进入降级状

态。取值范围[0.0,1.0] 代表0%-100%(如:设置为0.2,如果请求异常数超过20%则进入降级)

最小请求数:请求数小于该值时即使异常比率超出阈值也不会熔断

熔断策略:
1.慢调用比例:

当单位统计时长

( statIntervalMs )内请求数目大于设置的最小请求数目,并且慢调用的比例大于阈值,则接

下来的熔断时长内请求会自动被熔断降级。

2.异常比例:

请求异常数超过0.2(20%)就降级

3.异常数:

当单位统计时长内的异常数目超过阈值之后会自动进行熔断。经过熔断

时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求成功完成(没有错

误)则结束熔断,否则会再次被熔断。

4.热点参数限流:

热点参数限流例子:比如说id为3的商品特别火爆,需要进行限流,但是其他id的商品一般不需要限流

资源名:需要在consumer中的方法上设置@SentinelResource注解

参数索引:就是第几个参数,从0开始

单机阈值:就是正常情况下允许的点击量

限流阈值:就是限流情况下允许的点击量

5.@SentinelResource

@SentinelResource 用于定义资源,并提供可选的异常处理和 fallback 配置项。 @SentinelResource

注解包含以下属性:

value:资源名称,必需项(不能为空)

entryTypeentry 类型,可选项(默认为 EntryType.OUT)

blockHandler / blockHandlerClass: blockHandler 对应处理 BlockException 的函数名称,可

选项。blockHandler 函数访问范围需要是 public,返回类型需要与原方法相匹配,参数类型需要

和原方法相匹配并且最后加一个额外的参数,类型为 BlockException。blockHandler 函数默认需

要和原方法在同一个类中。若希望使用其他类的函数,则可以指定 blockHandlerClass 为对应的

类的 Class 对象,注意对应的函数必需为 static 函数,否则无法解析。

fallback:fallback 函数名称,可选项,用于在抛出异常的时候提供 fallback 处理逻辑。fallback

函数可以针对所有类型的异常(除了 exceptionsToIgnore 里面排除掉的异常类型)进行处理。

fallback 函数签名和位置要求:

返回值类型必须与原函数返回值类型一致;

方法参数列表需要和原函数一致,或者可以额外多一个 Throwable 类型的参数用于接收对应的异

常。

fallback 函数默认需要和原方法在同一个类中。若希望使用其他类的函数,则可以指定

fallbackClass 为对应的类的 Class 对象,注意对应的函数必需为 static 函数,否则无法解析。

defaultFallback(since 1.6.0):默认的 fallback 函数名称,可选项,通常用于通用的 fallback

逻辑(即可以用于很多服务或方法)。默认 fallback 函数可以针对所以类型的异常(除了

exceptionsToIgnore 里面排除掉的异常类型)进行处理。若同时配置了 fallback 和

defaultFallback,则只有 fallback 会生效。defaultFallback 函数签名要求:

返回值类型必须与原函数返回值类型一致;

方法参数列表需要为空,或者可以额外多一个 Throwable 类型的参数用于接收对应的异常。

defaultFallback 函数默认需要和原方法在同一个类中。若希望使用其他类的函数,则可以指定

fallbackClass 为对应的类的 Class 对象,注意对应的函数必需为 static 函数,否则无法解析。

exceptionsToIgnore(since 1.6.0):用于指定哪些异常被排除掉,不会计入异常统计中,也不会

进入 fallback 逻辑中,而是会原样抛出

fallback属性:

因为使用热点参数限流以后如果超了阈值就会报500,ParamFlowException异常,所以我们要处理这个异常

注意:
  1. fallback 方法可以在同一个类中定义,也可以在其他类中定义。如果在其他类中定义,则需要通过 fallbackClass 属性指定该类
  2. 返回类型:fallback 方法的返回类型必须与被保护的方法相同
  3. fallback 方法应该为 public,以便 Sentinel 框架能够调用它
  4. 参数列表:fallback 方法可以有以下几种参数组合:不带参数。只有一个 Throwable 类型的参数,用于接收捕获到的异常。包含原始方法的所有参数和一个 Throwable 类型的参数。
    @SentinelResource(value = "demo",fallback = "fallback")@GetMapping("/demo")public ResultAJAX demo(Integer id) {System.out.println("这是方法demo——————————————————————————————"+id);return ResultAJAX.success();}public ResultAJAX fallback(Integer id) {return ResultAJAX.error("这是方法fallback,用来解决ParamFlowException异常");}

这样就不会直接报500,而是报我们自定义设置的message

blockHandler属性:

blockHandler 对应处理 BlockException 的函数名称,可选项。blockHandler 函数访问范围需要是 public,返回类型需要与原方法相匹配,参数类型需要 和原方法相匹配并且最后加一个额外的参数,类型为 BlockException。blockHandler 函数默认需要和原方法在同一个类中。若希望使用其他类的函数,则可以指定 blockHandlerClass 为对应的 类的 Class 对象,注意对应的函数必需为 static 函数,否则无法解析。

ParamFlowException 热点参数异常

DegradeException熔断降级异常

FlowException流控异常处理

    @SentinelResource(value = "demo",blockHandler = "blockHandler")//@GetMapping("/demo")public ResultAJAX demo(Integer id) {System.out.println("这是方法demo——————————————————————————————"+id);return ResultAJAX.success();}public ResultAJAX blockHandler(Integer id, BlockException e) {//异常类型判断//流控异常if (e instanceof FlowException) {return ResultAJAX.error("ParamFlowException异常流控异常处理");}//熔断降级异常处理if (e instanceof DegradeException) {return ResultAJAX.error("熔断降级处理");}//热点参数异常if (e instanceof ParamFlowException) {return ResultAJAX.error("ParamFlowException异常流控异常处理");}return ResultAJAX.error("系统异常"+id);}

6.基于nacos配置中心进行规则持久化:

sentinel利用nacos做持久化,然后nacos再做持久化

<!--sentinel利用nacos做持久化-->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
</dependency>

流量控制配置:

spring:cloud:sentinel:datasource:ds1:nacos:server-addr: 127.0.0.1:8848 #nacos地址data-id: ${spring.application.name}-flow#naocs中配置文件名称,对应服务名,可随意填写(和配置中文文件一致即可)group-id: DEFAULT_GROUP #文件分组data-type: json #使用json格式rule-type: flow #使用flow限流

在配置中心配置:

流量控制,热点参数,熔断降级配置:

resource:资源名称

limitApp:来源应用

grade:阈值类型,0表示线程数,1表示QPS

count:单机阈值

strategy:流控模式,0表示直接,1表示关联,2表示链路

controlBehavior:流控效果,0表示快速失败,1表示Warm Up,2表示排队等待

clusterMode:是否集群

nacos-consume-flow配置:限流配置
[
{
"resource": "demo",
"limitApp": "default",
"grade": 1,
"count": 2,
"strategy": 0,
"controlBehavior": 0,
"clusterMode": false
}
]

bill-consumer-degrade配置:熔断降级
[
{
"resource": "abc",
"grade": 0,
"count": 2,
"timeWindow": 1,
"minRequestAmount": 1,
"statIntervalMs": 5
}
]

bill-consumer-7790-param-flow 配置:热点参数限流配置
[
{
"resource": "abc",
"paramIdx": 0,
"count": 10,
"burst": 5,
"duration": 1,
"controlBehavior": 0,
"maxQueueingTimeMs": 500
}
]

yml配置:

spring:application:name: nacos-consumecloud:sentinel:transport:port: 8719 #sentinel控制台端口dashboard: 127.0.0.1:9999 #sentinel控制台地址enable: true #开启sentinel 默认trueeager: true #取消控制台懒加载 立即初始化datasource:ds1: #限流配置nacos:server-addr: 127.0.0.1:8848 #nacos地址data-id: "${spring.application.name}-flow" #naocs中配置文件名称,对应服务名,可随意填写(和配置中文文件一致即可)group-id: DEFAULT_GROUP #文件分组data-type: json #使用json格式rule-type: flow #使用flow限流ds2: #熔断降级配置nacos:server-addr: 127.0.0.1:8848data-id: "${spring.application.name}-degrade"group-id: DEFAULT_GROUPdata-type: jsonrule-type: degrade #指定为熔断降级规则ds3: #热点参数限流配置nacos:server-addr: 127.0.0.1:8848data-id: "${spring.application.name}-param-flow"group-id: DEFAULT_GROUPdata-type: jsonrule-type: param-flow

能够在sentinel里面看到持久化的

相关文章:

微服务组件详解——sentinel

1.启动sentinel&#xff1a; 下载jar sentinel-dashboard-1.8.0.jar 使用以下命令直接运行 jar 包&#xff08;JDK 版本必须≥ 1.8&#xff09;&#xff1a; java -Dserver.port9999 -jar D:\sentinel-dashboard-1.8.0.jar 控制台访问地址&#xff1a;http://localhost:9999…...

波导阵列天线 学习笔记11双极化全金属垂直公共馈电平板波导槽阵列天线

摘要&#xff1a; 本communicaition提出了一种双极化全金属垂直公共馈电平板波导槽阵列天线。最初提出了一种公共馈电的单层槽平板波导来实现双极化阵列。此设计消除了传统背腔公共馈电的复杂腔体边缘的必要性&#xff0c;提供了一种更简单的天线结构。在2x2子阵列种发展了宽十…...

swift 开发效率提升工具

安装github copliot for xcode github/CopilotForXcode brew install --cask github-copilot-for-xcode安装swiftformat for xcode brew install swiftformatXcode Swift File代码格式化-SwiftFormat...

3-5 WPS JS宏 工作表的移动与复制学习笔记

************************************************************************************************************** 点击进入 -我要自学网-国内领先的专业视频教程学习网站 *******************************************************************************************…...

Centos7部署k8s(单master节点安装)

单master节点部署k8s集群(Centos) 一、安装前准备 1、修改主机名 按照资源准备修改即可 # master01 hostnamectl set-hostname master01 ; bash # node1 hostnamectl set-hostname node1 ; bash # node2 hostnamectl set-hostname node2 ; bash2、修改hosts文件 以下命令所…...

Tomcat

1.Tomcat是什么&#xff1f; Tomcat 是一个开源的、轻量级的 Servlet 容器&#xff0c;也被称为 Web 服务器&#xff0c;由 Apache 软件基金会的 Jakarta 项目开发&#xff0c;在 Java Web 开发领域应用广泛。 1&#xff09;Servlet 容器&#xff1a;Servlet 是 Java 语言编写…...

基于SpringBoot+Vue的电影订票及评论网站的设计与实现(源码+SQL脚本+LW+部署讲解等)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…...

地基简识Spring MVC 组件

Spring MVC 是一个基于 MVC 设计模式的框架&#xff0c;其核心组件协同工作以处理 HTTP 请求并生成响应。以下是各组件的详细说明及其协作流程&#xff1a; 一、​核心组件 ​DispatcherServlet&#xff08;前端控制器&#xff09;​ ​作用&#xff1a;接收所有请求并协调其他…...

如何通过Python网络爬虫技术应对复杂的反爬机制?

要使用Python网络爬虫技术绕过复杂的反爬虫机制&#xff0c;可以采取以下几种策略&#xff1a; 设置User-Agent&#xff1a;通过设置不同的User-Agent&#xff0c;模拟正常用户的浏览器访问&#xff0c;避免被网站识别为爬虫。可以使用fake_useragent库来随机生成User-Agent。…...

深入浅出:Spring AI 集成 DeepSeek 构建智能应用

Spring AI 作为 Java 生态中备受瞩目的 AI 应用开发框架&#xff0c;凭借其简洁的 API 设计和强大的功能&#xff0c;为开发者提供了构建智能应用的强大工具。与此同时&#xff0c;DeepSeek 作为领先的 AI 模型服务提供商&#xff0c;在自然语言处理、计算机视觉等领域展现了卓…...

Node.js二:第一个Node.js应用

精心整理了最新的面试资料和简历模板&#xff0c;有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 创建的时候我们需要用到VS code编写代码 我们先了解下 Node.js 应用是由哪几部分组成的&#xff1a; 1.引入 required 模块&#xff1a;我们可以使用 requi…...

【HarmonyOS Next】鸿蒙状态管理装饰器V1和V2混用方案

【HarmonyOS Next】鸿蒙状态管理装饰器V1和V2混用方案 一、V1和V2为什么需要混用 自从api7开始&#xff0c;一直到api10。V1的实际使用中&#xff0c;开发人员发现Observed和ObjectLink 监听实现多层级嵌套对象的更新的方案&#xff0c;太过于臃肿。当需要监听处理更新的多层…...

【技海登峰】Kafka漫谈系列(三)详解Kafka的数据结构与存储机制

【技海登峰】Kafka漫谈系列(三)详解Kafka的数据结构与存储机制 Kafka 使用消息日志(Log)机制来持久化保存数据,我们知道Kafka实际是以Partition分区为单位进行负载均衡和资源分配,每个Partition又由多个Replica副本组成,副本之间分布于不同的Broker上来保证高可用,因此…...

PyCharm接入本地部署DeepSeek 实现AI编程!【支持windows与linux】

今天尝试在pycharm上接入了本地部署的deepseek&#xff0c;实现了AI编程&#xff0c;体验还是很棒的。下面详细叙述整个安装过程。 本次搭建的框架组合是 DeepSeek-r1:1.5b/7b Pycharm专业版或者社区版 Proxy AI&#xff08;CodeGPT&#xff09; 首先了解不同版本的deepsee…...

腾讯云扩容记录

腾讯云扩容&#xff1a; sudo yum install -y cloud-utils-growpart 安装扩容工具 sudo file -s /dev/vda1 有数据 sudo LC_ALLen_US.UTF-8 growpart /dev/vda 1 sudo resize2fs /dev/vda1 df -Th 完毕 以下是对执行的命令的详细解释以及背后的原理&#xff1a; 1. 安装 cloud…...

计算机毕业设计Hadoop+Spark+DeepSeek-R1大模型音乐推荐系统 音乐数据分析 音乐可视化 音乐爬虫 知识图谱 大数据毕业设计

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

本地部署大语言模型-DeepSeek

DeepSeek 是国内顶尖 AI 团队「深度求索」开发的多模态大模型&#xff0c;具备数学推理、代码生成等深度能力&#xff0c;堪称"AI界的六边形战士"。 Hostease AMD 9950X/96G/3.84T NVMe/1G/5IP/RTX4090 GPU服务器提供多种计费模式。 DeepSeek-R1-32B配置 配置项 规…...

Windows逆向工程入门之MASM数据结构使用

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 第一章&#xff1a;MASM数据定义体系精要 1.1 基础数据类型全景 1.1.1 整型数据规范 1.1.2 浮点数据编码 1.2 复合数据结构 1.2.1 多维数组定义 1.2.2 复杂结构体 第二章&#xf…...

python 之协程笔记

协程 协程的本质是用户态线程&#xff0c;由程序自行控制切换时机&#xff0c;无需操作系统介入。与线程相比&#xff0c;协程的三大核心优势&#xff1a; 资源占用极低&#xff1a;一个协程仅需KB级内存&#xff0c;可轻松创建数万个切换效率惊人&#xff1a;上下文切换在用户…...

使用 REINFORCE 算法强化梯度策略

一、整体概述 此代码利用 REINFORCE 算法&#xff08;一种基于策略梯度的强化学习算法&#xff09;来解决 OpenAI Gym 中的 CartPole-v1 环境问题。CartPole-v1 环境的任务是控制一个小车&#xff0c;使连接在小车上的杆子保持平衡。代码通过构建一个神经网络作为策略网络&…...

【C++并发编程实战】第1章 你好,C++的并发世界!

文章目录 1. 何谓并发2. 为什么使用并发&#xff1f;3. 什么时候不使用并发4. C多线程历史5. 第一个并发程序 1. 何谓并发 最简单和最基本的并发,是指两个或更多独立的活动同时发生。计算机领域的并发指的是在单个系统里同时执行多个独立的任务&#xff0c;而非顺序的进行一些…...

【QT线程】子线程阻塞主线程的一次网络api请求案例

阻塞源码赏析 这是最近一次项目遇到的问题&#xff0c;原因是我觉得子线程里俩次请求间隔太短了&#xff0c;会引起服务器屏蔽我的api因此&#xff0c;我故作聪明加多了一个延时函数&#xff0c;欢迎各位鉴赏代码。 // 并行发起双请求 QNetworkRequest liveRequest(liveUrl);…...

DockerでOracle Database 23ai FreeをセットアップしMAX_STRING_SIZEを拡張する手順

DockerでOracle Database 23ai FreeをセットアップしMAX_STRING_SIZEを拡張する手順 はじめに環境準備ディレクトリ作成Dockerコンテナ起動 データベース設定変更コンテナ内でSQL*Plus起動PDB操作と文字列サイズ拡張設定検証 管理者ユーザー作成注意事項まとめ 中文版请访问这里…...

【计算机网络入门】初学计算机网络(五)

目录 1.编码&解码、调制&解调 2.常用编码方法 2.1 不归零编码&#xff08;NRZ&#xff09; 2.2 归零编码(RZ) 2.3 反向非归零编码(NRZI) 2.4 曼彻斯特编码 2.5 差分曼彻斯特编码 3. 各种编码的特点 4.调制 5.有线传输介质 5.1 双绞线 5.2 同轴电缆 5.3 光…...

unity学习60: 滑动条 和 滚动条 滚动区域

目录 1 滚动条 scrollbar 1.1 创建滚动条 1.2 scrollbar的子物体 1.3 scrollbar的属性 2 滚动视图 scroll View 2.1 创建1个scroll View 2.1.1 实际类比&#xff0c;网页就是一个 scroll view吧 2.2 子物体构成 2.3 核心component : Scroll Rect 3 可视区域 view p…...

【Linux网络-HTTP协议】HTTP基础概念+构建HTTP

代码定位&#xff1a;南毅c/Linux - Gitee.com HTTP协议 介绍 虽然我们说&#xff0c;应用层协议是我们程序猿自己定的.但实际上,已经有大佬们定义了一些现成的,又非常好用的应用层协议,供我们直接参考使用。HTTP(超文本传输协议)就是其中之一。 在互联网世界中&#xff0c…...

2025年企业网络安全实战指南:常见漏洞解析与全方位防御策略

2025年企业网络安全实战指南:常见漏洞解析与全方位防御策略 作者: 网络安全专家 日期: 2025-02-27 分类: [网络安全] 标签: [漏洞防护, 信息安全, 企业安全] 引言:漏洞是攻击者的入口,防御是安全的基石 2025年,网络安全威胁持续升级。根据Gartner最新报告,全球企业因漏洞…...

一个py文件搞定mysql查询+Json转换+表数据提取+根据数据条件生成excel文件+打包运行一条龙

import os import argparse import pymssql import json import pandas as pd from datetime import datetime from pandas.io.formats.excel import ExcelFormatter import openpyxl# 投注类型映射字典 BET_MAPPING {1: WIN, 2: PLA, 3: QIN, 4: QPL,5: DBL, 6: TCE, 7: QTT,…...

P1123 取数游戏

题目描述 一个 NM 的由非负整数构成的数字矩阵&#xff0c;你需要在其中取出若干个数字&#xff0c;使得取出的任意两个数字不相邻&#xff08;若一个数字在另外一个数字相邻 8 个格子中的一个即认为这两个数字相邻&#xff09;&#xff0c;求取出数字和最大是多少。 输入格式…...

Spock框架:让单元测试更优雅的高效武器

&#x1f4d6; 前言&#xff1a;为什么选择Spock&#xff1f; 在软件开发领域&#xff0c;单元测试是保证代码质量的基石。但传统的JUnit/TestNG测试框架在面对复杂测试场景时&#xff0c;往往会显得力不从心。Spock框架作为新一代测试框架的佼佼者&#xff0c;以其独特的BDD&…...

STM32中的ADC

目录 一&#xff1a;什么是ADC 二&#xff1a;ADC的用途 三&#xff1a;STM32F103ZET6的ADC 3.1ADC对应的引脚 3.2ADC时钟 3.3ADC的工作模式 ​编辑3.4ADC校准 3.5ADC转换结构和实际电压的换算 四&#xff1a;ADC配置步骤 五&#xff1a;两个重要的函数 一&#xff1a…...

React Portals深度解析:突破组件层级的渲染艺术

React Portals的核心概念、使用场景、实现方法、优缺点以及最佳实践。根据我搜索到的资料,都详细讨论了Portals的使用方法、应用场景和注意事项。比如提供了代码示例,说明如何用createPortal将组件渲染到DOM的其他位置,而则强调了Portals在解决z-index和overflow问题上的优势…...

AWS SQS跨账户访问失败排查指南

引言 在使用AWS SQS(Simple Queue Service)时,跨账户访问是常见的业务场景。例如,账户A的应用程序向队列发送消息,账户B的消费者从队列拉取消息。尽管AWS官方文档明确支持此类配置,但在实际应用中,由于权限模型的复杂性,开发者和运维人员常会遇到“策略已配置但无法接…...

数据挖掘工程师的技术图谱和学习路径

数据挖掘工程师的技术图谱和学习路径: 1.基础知识 数据挖掘工程师是负责从大量数据中发现潜在模式、趋势和规律的专业人士。以下是数据挖掘工程师需要掌握的基础知识: 数据库知识:熟悉关系数据库和非关系数据库的基本概念和操作,掌握SQL语言。 统计学基础:了解统计学的基…...

0301 leetcode - 1502.判断是否能形成等差数列、 682.棒球比赛、657.机器人能否返回原点

1502.判断是否能形成等差数列 题目 给你一个数字数组 arr 。 如果一个数列中&#xff0c;任意相邻两项的差总等于同一个常数&#xff0c;那么这个数列就称为 等差数列 。 如果可以重新排列数组形成等差数列&#xff0c;请返回 true &#xff1b;否则&#xff0c;返回 false…...

【03】STM32F407 HAL 库框架设计学习

【03】STM32F407 HAL 库框架设计学习 摘要 本文旨在为初学者提供一个关于STM32F407微控制器HAL&#xff08;Hardware Abstraction Layer&#xff09;库框架设计的详细学习教程。通过本文&#xff0c;读者将从零开始&#xff0c;逐步掌握STM32F407的基本知识、HAL库的配置步骤…...

React低代码项目:Redux 状态管理

吐司问卷&#xff1a;Redux 状态管理 Date: February 18, 2025 5:37 PM (GMT8) Redux 管理用户信息 命名规范&#xff1a; 以 Info 结尾表示获取Reudx信息&#xff0c;比如 useGetUserInfo.ts 以 data 结尾表示获取服务端信息&#xff0c;比如 useLoadQuestionData 采用 Re…...

Vue核心知识:动态路由实现完整方案

在Vue中实现动态路由&#xff0c;并结合后端接口和数据库表设计&#xff0c;是一个复杂的项目&#xff0c;需要多个技术栈和步骤的配合。以下将详细描述整个实现过程&#xff0c;包括数据库设计、后端接口设计、前端路由配置以及如何实现动态路由的功能。 目录 一、需求分析二…...

Linux安装jdk,node,mysql,redis

准备工作&#xff1a; 1.安装VMware软件&#xff0c;下载CentOs7镜像文件&#xff0c;在VMware安装CentOs7 2.宿主机安装Xshell用来操作linux 3. .宿主机安装Xftp用来在宿主机和虚拟机的linux传输文件 案例1&#xff1a;在 /home/soft文件夹解压缩jdk17&#xff0c;并配置环…...

数据库原理与使用基础教程

数据库原理与使用基础教程 大纲 数据库基础概述 什么是数据库&#xff1f;数据库管理系统&#xff08;DBMS&#xff09;概述数据库的类型数据库模型与结构 关系型数据库 关系型数据库简介表&#xff08;Table&#xff09;、字段&#xff08;Field&#xff09;、记录&#xff…...

GCC 与 Clang:两大编译器的全面对比与深度解析!

GCC 与 Clang&#xff1a;两大编译器的全面对比与深度解析&#xff01;&#x1f525; 你是否曾为选择编译器而纠结&#xff1f;GCC 和 Clang 作为 C/C 开发中最主流的编译器&#xff0c;它们各自有什么优势和特点&#xff1f;为什么有人说 Clang 更现代&#xff0c;而 GCC 更强…...

ue5 创建多列StreeView的方法与理解

创建StreeView的多列样式怎么就像是创建单行单列差不多?貌似就是在单行单列中加入了多列widget? 示例代码 DetailTabWidget #pragma once #include "TreeViewItemBase.h"class SDetailTabWidget : public SCompoundWidget {SLATE_BEGIN_ARGS(SDetailTabWidget){…...

GPT-4.5来了

https://chat.xutongbao.top/...

java后端开发day25--阶段项目(二)

&#xff08;以下内容全部来自上述课程&#xff09; 1.美化界面 private void initImage() {//路径分两种&#xff1a;//1.绝对路径&#xff1a;从盘符开始写的路径 D:\\aaa\\bbb\\ccc.jpg//2.相对路径&#xff1a;从当前项目开始写的路径 aaa\\bbb\\ccc.jpg//添加图片的时…...

【小羊肖恩】小羊杯 Round 2 C+K

题目链接&#xff1a;https://ac.nowcoder.com/acm/contest/100672#question C.是毛毛虫吗&#xff1f; 思路&#xff1a; 其实很简单&#xff0c;假设我们要满足题目所给条件&#xff0c;那么这个毛毛虫最坏情况下肯定是一条如下图所示的无向图 右端省略号为对称图形 &…...

计算机网络——详解TCP三握四挥

文章目录 前言一、三次握手1.1 三次握手流程1.2 tcp为什么需要三次握手建立连接&#xff1f; 二、四次挥手2.1 四次挥手流程2.2 为什么是四次&#xff0c;不是三次&#xff1f;2.3 为什么要等待2msl&#xff1f;2.4 TCP的保活计时器 前言 TCP和UDP是计算机网络结构中运输层的两…...

PHP实现国密SM4算法,银行系统加密算法,JAVA和PHP可相互转换(附完整源码)

最终实现效果&#xff1a;PHP生成加密串&#xff0c;JAVA代码中完成匹配 JAVA SM4库实现效果 /*** 签名** param content 请求报文体* param secret 密钥* return*/public static String sign(String content, String secret) {String charSet "UTF-8";String c…...

DILLEMA:扩散模型+大语言模型,多模态数据增强框架

引言&#xff1a;深度学习模型的鲁棒性测试需要全面且多样化的测试数据。现有的方法通常基于简单的数据增强技术或生成对抗网络&#xff0c;但这些方法在生成真实且多样化的测试数据集方面存在局限性。为了克服这些限制&#xff0c;DILLEMA框架应运而生&#xff0c;旨在通过结合…...

京东web 详情 cfe滑块分析

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 逆向分析 data response.json() pri…...

【Redis学习】Redis Docker安装,自定义config文件(包括RDB\AOF setup)以及与Spring Boot项目集成

【本文内容】 第1章&#xff1a;通过Docker安装Redis&#xff0c;并自定义config文件以及mount data目录。第2章&#xff1a;介绍Redis持久化到磁盘&#xff0c;有4种方式&#xff1a;RDB / AOF / NONE / RDB AOF。第3章&#xff1a;使用Server自带的redis-cli工具连接。第4章…...