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

微服务存在的问题及解决方案

微服务存在的问题及解决方案

1. 存在问题

1.1 接口拖慢

因为一个接口在并发时,正好执行时长又比较长,那么当前这个接口占用过多的 Tomcat 连接,导致其他接口无法即时获取到 Tomcat 连接来完成请求,导致接口拖慢,甚至失败。

假如商品服务业务并发较高,占用过多 Tomcat 连接。可能会导致商品服务的所有接口响应时间增加,延迟变高,甚至是长时间阻塞直至查询失败。

1.2 服务器雪崩问题

什么是服务器雪崩?

举例:假如此时有一个 “商品服务”,其它几乎所有的服务基本都会直接或间接的使用它,但是如果此时 “商品服务” 崩溃了,就会导致整个服务全盘崩溃(红色表示出现问题),这个现象就是所谓的服务器雪崩

2. 服务器保护方案

由于服务器雪崩现象的出现,因此,就需要对引入可能出现问题服务的服务进行保护,即服务器保护:

  1. 降级:断路器会统计访问某个服务的请求数量,统计服务提供方的异常比例,当比例过高表明该接口会影响到其它服务,应该拒绝调用该接口,而是直接走降级逻辑。

  2. 熔断:熔断机制用于在服务出现问题时快速失败,避免调用链路中的服务相互等待,导致整体系统响应变慢甚至不可用。

  3. 超时:设置合理的超时时间可以避免长时间等待响应导致的问题。当请求超时时,可以选择快速失败并返回错误信息,或者重试等策略。

  4. 线程隔离:线程隔离是指为每个服务分配独立的线程池,这样即使某个服务出现问题也不会影响到其他服务。

  5. 限流:限流是最常见的服务保护措施之一,其目的是为了防止服务因为过大的流量而崩溃。

    对于某些关键资源或者参数的访问,可以采取特殊的限流措施来防止这些热点成为瓶颈

2.1 熔断降级

2.1.1 说明

熔断降级是解决雪崩问题的重要手段,包括熔断和降级两个方案。

熔断是由断路器统计服务调用的异常比例、慢请求比例,如果超出阈值则会熔断该服务。即拦截访问该服务的一切请求;而当服务恢复时,断路器会放行访问该服务的请求。熔断发生在服务调用方即客户端。

降级是当遇到访问失败可以快速返回一些默认数据或者友好提示,用户体验会更好。熔断降级结合后是当线路断开后直接走降级线路避免再次去请求失败线路。降级方法需要在服务调用方即客户端实现。

2.1.2 Sentinel 安装与集成

一、安装

实现服务保护的工具有很多,Spring Cloud Alibaba 技术栈中 Sentinel 是实现服务保护的中间件。

Sentinel 是阿里巴巴开源的一款服务保护框架,目前已经加入 Spring Cloud Alibaba 中。

使用:

  1. 下载 jar 包:Releases · alibaba/Sentinel · GitHub

    本地资源:sentinel 本地服务

  2. 运行

    将 jar 包拷贝到 虚拟机/data/soft/sentinel 目录下重命名为sentinel-dashboard.jar

    创建 Dockerfile 文件

    FROM openjdk:11-jdkENV TZ=Asia/Shanghai
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezo
    ARG SENTINEL_VERSION=1.8.6# copy sentinel jar
    ADD ./sentinel-dashboard.jar /home/sentinel-dashboard.jar
    RUN chmod -R +x /home/sentinel-dashboard.jarENTRYPOINT ["sh","-c","java -Dserver.port=8090 -Dcsp.sentinel.dashboard.server=localhost:8090 -Dproject.name=sentinel-dashboard -jar $JAVA_OPTS /home/sentinel-dashboard.jar"]
  3. 执行命令创建镜像

    docker build -t sentinel-dashboard .
    
  4. 创建并启动容器

    docker run  --name sentinel-dashboard -d -p 9090:8090 sentinel-dashboard:latest
    

    启动 sentinel

    docker start sentinel-dashboard
    
  5. 登录 sentinel 容器并设置时区

    docker exec -it sentinel-dashboard /bin/bashln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezon
    
  6. 访问 http://微服务IP:9090

  7. 账户、密码:admin

二、集成

举例:现在有两个服务 A、B,其中 A 服务需要使用到 B 服务,而此时,就需要对 A 服务进行保护,防止 B 服务崩溃导致 A 服务无法运行。

在需要保护的架构中导入依赖:

<!--sentinel-->
<dependency><groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>

修改配置文件

spring:cloud:sentinel:transport:# 服务器配置dashboard: 192.168.101.68:9090client-ip: 192.168.101.1# 本地配置# dashboard: localhost:8090http-method-specify: true # 开启请求方式前缀可根据http请求方法区分簇点链路
2.1.3 降级

调用了目标服务接口,发现有问题,走降级逻辑(要自己写)

修改配置项

feign:sentinel:enabled: true # 开启feign对sentinel的支持

在 OpenFeign 处配置降级逻辑

@Slf4j
@Component
public class ItemClientFallbackFactory implements FallbackFactory<ItemClient> {@Overridepublic ItemClient create(Throwable cause) {return new ItemClient() {@Overridepublic List<ItemDTO> queryItemByIds(Collection<Long> ids) {log.warn("远程调用ItemClient queryItemByIds方法出现降级,参数:{}", ids);return List.of();}@Overridepublic void deductStock(List<OrderDetailDTO> items) {log.warn("远程调用ItemClient deductStock方法出现降级,参数:{}", items);}};}
}

在接口处进行配置,指定要使用的降级逻辑

@FeignClient(name = "item-service", path = "/items", fallbackFactory = ItemClientFallbackFactory.class)
public interface ItemClient { ... }
api/item/│├── ItemClient.java│└── ItemClientFallbackFactory.java

在需要保护的服务启动类上配置要扫描的包

// 扫描
@SpringBootApplication(scanBasePackages = {"com.hmall.cart", "com.hmall.api"})
@MapperScan("com.hmall.cart.mapper")
@EnableFeignClients(basePackages = "com.hmall.api")
public class CartServiceApplication { ... }
2.1.4 熔断

降级逻辑达到了阈值,则直接熔断,不调用目标服务接口。

工作原理:

  1. 默认情况下,熔断器是关闭的。那么所有请求都正常执行的;
  2. 如果有服务出现了问题,并且失败比例达到了设置的阈值,那么熔断器会打开,所有的请求直接走降级逻辑,返回托底数据;
  3. 到达熔断时间后,熔断器会处于半开状态,会允许一个请求过来,如果这个请求成功,则关闭熔断器,如果这个请求失败,继续打开熔断器。周而复始。

配置熔断策略:

通过 Sentinel 面板进行配置

  1. 异常数配置

    说明:2 秒内最小请求数为 2,异常数达到 1 发生熔断,熔断时长为 20 秒。

  2. 慢调用比例配置

    说明:

    1. RT(接口响应时间)超过 200 毫秒的请求调用就是慢调用
    2. 统计最近 3000ms 内的最少 2 次请求,如果慢调用比例大于等于 50%,则触发熔断
    3. 熔断持续时长 20s
  3. 异常比例配置

    说明:

    1. 统计最近 3000ms 内的最少 2 次请求,如果异常比例不低于 0.5,则触发熔断
    2. 熔断持续时长 20s

2.2 请求限流

什么是 QPS

QPS 是 “Queries Per Second” 的缩写,中文通常称为 “每秒查询率” 或 “每秒请求数”。它是一个衡量系统性能的重要指标,特别是在评估 Web 服务器、数据库系统、API 接口等的负载能力时经常使用。

QPS 表示系统在一秒钟内能够处理的查询或请求的数量。这个指标可以帮助开发者和运维人员了解系统的处理能力和性能瓶颈。例如,如果一个 Web 服务的 QPS 为 100,则意味着该服务在一秒钟内最多可以处理 100 个请求。

2.3 线程隔离

为指定接口分配固定数量的线程,即使当前接口出现不可用的情况。也只会消耗给你分配的线程数。不影响其他线程。

线程隔离有两种方式实现:

  1. 线程池隔离:给每个服务调用业务分配一个线程池,利用线程池本身实现隔离效果
  2. 信号量隔离:不创建线程池,而是计数器模式,记录业务使用的线程数量,达到信号量上限时,禁止新的请求

Sentinel 的线程隔离就是基于信号量隔离实现的,而 Hystix 两种都支持,但默认是基于线程池隔离。

相关文章:

微服务存在的问题及解决方案

微服务存在的问题及解决方案 1. 存在问题 1.1 接口拖慢 因为一个接口在并发时&#xff0c;正好执行时长又比较长&#xff0c;那么当前这个接口占用过多的 Tomcat 连接&#xff0c;导致其他接口无法即时获取到 Tomcat 连接来完成请求&#xff0c;导致接口拖慢&#xff0c;甚至…...

C语言中的结构体数组

一、什么是结构体数组? 在C语言中,**结构体(struct)**是一种自定义数据类型,它可以将不同类型的数据组合成一个单一的数据结构。结构体数组则是多个结构体元素按顺序存储在内存中的集合。通过结构体数组,可以存储多个相同类型的结构体,每个结构体都拥有自己独立的成员变…...

[GESP 202412 一级 T1] 温度转换

描述 小杨最近学习了开尔文温度、摄氏温度和华氏温度的转换。令符号 KK 表示开尔文温度&#xff0c;符号 CC 表示摄氏温度&#xff0c;符号 FF 表示华氏温度&#xff0c;这三者的转换公式如下&#xff1a; C K - 273.15 F C*1.8 32 现在小杨想编写一个程序计算某一开尔文…...

虚幻基础:GAS

文章目录 Gameplay Tag&#xff1a;项目类&#xff1a;可直接按标签管理游戏中的各种对象。其他&#xff1a;数据表格&#xff1a;gameplaytag primary data asset&#xff1a;项目类&#xff1a;存储游戏中的数据&#xff1a;通常用于配置表蓝图&#xff1a;primary data asse…...

案例:图书管理

掌握图书管理案例的实现&#xff0c;能够使用Spring Boot整合Thymeleaf完成图书管理案例。 1.任务需求 &#xff08;1&#xff09;项目使用Spring Boot整合Thymeleaf&#xff0c;项目展示的页面效果全部通过Thymeleaf的模板文件实现。 &#xff08;2&#xff09;查询所有图书。…...

Pycharm 社区版安装教程

找到安装包双击安装文件---点击下一步 一般路径是&#xff1a;C:\Rambo\Software\Development 选择完成后就是如下地址&#xff1a; C:\Rambo\Software\Development\PyCharm Community Edition 2024.3.3 点击上述3个位置就可以了----下一步 等待安装就可以了---完成后点击完成…...

RabbitMQ 全面详解(附面试重点)

RabbitMQ 全面详解&#xff08;附面试重点&#xff09; 一、RabbitMQ 与其他消息队列对比 特性RabbitMQKafkaRocketMQActiveMQ设计定位企业级消息中间件&#xff08;传统业务场景&#xff09;高吞吐分布式流处理平台&#xff08;日志、大数据&#xff09;金融级高可靠消息中间…...

浏览器好用的去广告插件和暗黑模式护眼插件

提升浏览体验&#xff1a;Edge浏览器的Adblock和Dark Mode扩展 Adblock&#xff1a;告别广告干扰 功能&#xff1a;高效拦截弹窗、横幅和视频广告&#xff0c;提升网页整洁度&#xff0c;加快加载速度&#xff0c;节省流量。安装链接&#xff1a;安装Adblock Dark Mode for E…...

VBA第二十七期 数据录入中验证格式有效性

Excel的数据有效性验证是一个有用的工具&#xff0c;但会需要我们向使用数据单元格提前设定有效性验证规则。这样一来使数据的有效性验证功能不能使用在VBA编程中。下面介绍如何在工作表中使用Change事件来创建数据有效性验证过程。监视单元格区域验证数据输入的有效性&#xf…...

基于 Verilog 的时序设计:从理论到实践的深度探索

在数字电路设计领域,时序设计是一个至关重要的环节,它涉及到组合逻辑电路与时序逻辑电路的设计差异、时钟信号的运用以及触发器的工作原理等多个方面。本文将围绕基于 Verilog 的时序设计实验展开,详细阐述实验过程、代码实现以及结果分析,帮助读者深入理解时序设计的核心概…...

[JAVASE] 反射

一. 反射概念 反射&#xff08;Reflection&#xff09;允许程序在运行时查询、访问和修改类、接口、字段和方法的信息。反射提供了一种动态操作类的能力。 二. Java反射的基本使用和应用 java.lang.reflect 是 Java 反射机制的核心包 &#xff0c;提供了操作类及其成员&…...

C++11智能指针简述

一、实现原理 在智能指针对象中有一个裸指针&#xff0c;此指针存储的是动态创建对象的地址&#xff0c;用于生存期控制&#xff0c;能够确保智能指针对象离开所在作用域时&#xff0c;自动正确地销毁动态创建的对象&#xff0c;防止内存泄漏。 使用裸指针存在的问题&#xff…...

【spring boot 实现图片验证码 前后端】

导入hutool依赖 <!--hutool--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.36</version>获取验证码接口 Autowiredprivate Captcha captcha;private final static Long VALIDA…...

QT中读取QSetting文件

1.ini文件的格式 头文件 #include <QSettings> #include <QStringList> #include <QtCore> #include <QDebug>2.读文件 //ini文件的读取 void iniTest::readIniFile(QString filePath) {//1.打开ini文件QSettings m_iniFile(filePath, QSettings::I…...

网络安全 --- 基于网络安全的 Linux 最敏感目录及文件利用指南

目录 基于网络安全的 Linux 最敏感目录及文件利用指南 Linux 中最敏感的目录及文件 1. /etc 2. /root 3. /var/log 4. /proc 5. /tmp 6. /home 7. /boot 8. /dev 如何利用这些敏感文件 你可能没想到的知识点 总结 Linux 中最敏感的目录及文件 1. /etc 存放内容&a…...

操作系统八股文整理(一)

操作系统八股文整理 一、进程和线程的区别二、进程与线程的切换过程一、进程切换进程切换的步骤&#xff1a; 二、线程切换线程切换的步骤&#xff1a; 三、进程切换与线程切换的对比四、上下文切换的优化 三、系统调用一、系统调用的触发二、从用户空间切换到内核空间三、执行…...

ssh转发笔记

工作中又学到了&#xff0c;大脑转不过来 现有主机A&#xff0c;主机B&#xff0c;主机C A能访问B&#xff0c;B能访问C&#xff0c;A不能访问C C上80端口有个服务&#xff0c;现在A想访问这个服务&#xff0c;领导让用ssh转发&#xff0c;研究半天没找到理想的语句&#xf…...

[从零开始学SSM] Bean的配置

bean基础配置 bean别名配置 bean的作用范围配置 由运行结果可知&#xff0c;Spring创建的bean默认是单例的 那么如果我想创建非单例的bean怎么办&#xff0c;这时候就需要用到配置的方式完成了&#xff1a;在<bean>的属性中添加一个scope属性&#xff0c;该属性默认是si…...

CML(Current Mode Logic)电平详解

一、CML的定义与核心特性 CML&#xff08;Current Mode Logic&#xff0c;电流模式逻辑&#xff09; 是一种基于 电流驱动 的高速差分信号标准&#xff0c;专为 10Gbps以上超高速传输 设计。其核心原理是通过恒定的尾电流源切换电流路径&#xff0c;生成低摆幅差分信号&#x…...

【链表世界的深度探索:从基础到高阶的算法解读】—— LeetCode

文章目录 反转链表链表的中间结点合并两个有序链表相交链表两数相加两两交换链表中的节点重排链表合并K个升序链表K个一组翻转链表 反转链表 这道题目的意思很好理解&#xff0c;即将链表给反转即可 方法一&#xff1a; 利用双指针进行操作&#xff0c;定义两个变量 prev 以及…...

JMeter 性能测试

Jmeter 用户手册 名词解释&#xff1a; RPS&#xff1a;每秒请求数-每秒向服务器发送多少请求数&#xff08;一个场景&#xff0c;系统面临多大的压力&#xff09; TPS&#xff1a;每秒事务数-每秒能够处理多少请求/事务数性能评价标准&#xff08;其中的一个核心指标&#x…...

LCR 159. 库存管理 III

这道题虽然简单&#xff0c;但是可以有多种解法&#xff0c;适合练习各种解法。 可以用基于快速排序思想的快速选择算法&#xff1a; class Solution { public:vector<int> inventoryManagement(vector<int>& stock, int cnt) {vector<int> res;int le…...

Spring IOC(五个类注解)

controller、service、Repository、Component 、Configurationpackage com.java.ioc;import com.java.ioc.Controller.HelloController; import com.java.ioc.rep.UserRepository; import com.java.ioc.service.UserService; import org.springframework.boot.SpringApplicatio…...

JavaScript 中的包装类型:概念、作用与使用场景

文章目录 引言1. 什么是包装类型&#xff1f;1.1 包装类型的定义1.2 包装类型的作用 2. 包装类型的使用2.1 自动装箱&#xff08;Autoboxing&#xff09;示例 2.2 手动创建包装对象示例 3. 包装类型的特性3.1 包装对象的生命周期示例 3.2 基本类型与包装对象的区别示例 4. 包装…...

Linux 如何上传本地文件以及下载文件到本地命令总结

如果你希望在 Shell 终端中将远程服务器上的文件下载到本地电脑&#xff0c;可以使用以下工具和命令&#xff1a; 1. rz / sz&#xff08;用于 Xshell、MobaXterm 等终端&#xff09; 如果你使用的是Xshell、SecureCRT、MobaXterm等支持 rz/sz 的终端&#xff0c;可以使用 rz …...

CentOS 上扩展 Swap 分区的大小

在 CentOS 上扩展 Swap 分区的大小可以通过以下几种方式实现&#xff1a; 方法 1&#xff1a;增加 Swap 文件&#xff08;推荐&#xff09; 如果你的 Swap 是基于文件的&#xff08;而不是分区&#xff09;&#xff0c;你可以增加 Swap 文件的大小&#xff0c;而不需要修改磁盘…...

清晰易懂的Miniconda安装教程

小白也能看懂的 Miniconda 安装教程 Miniconda 是一个轻量级的 Python 环境管理工具&#xff0c;适合初学者快速搭建 Python 开发环境。本教程将手把手教你如何在 Windows 系统上安装 Miniconda&#xff0c;并配置基础环境&#xff0c;确保你能够顺利使用 Python 进行开发。即…...

算法016——最小覆盖子串

力扣——最小覆盖子串&#xff08;点击跳转&#xff09; 分析题目 我们先随便从一个位置开始&#xff0c;让 right 右移&#xff0c;直到找到符合题目的位置停下 之后&#xff0c;让 left 右移&#xff0c;此时会出现两种情况 仍然符合要求&#xff0c;right 不需要动不符合…...

DeepSeek-R1大模型微调技术深度解析:架构、方法与应用全解析

1. DeepSeek-R1大模型架构设计与技术特性 1.1 架构设计 DeepSeek-R1作为超大规模语言模型,其核心架构设计包含以下创新: 专家混合架构(MoE) 采用6710亿参数的混合专家架构(MoE),每个推理过程仅激活370亿参数,实现计算效率与资源利用率的突破性提升。 Transformer框架…...

二阶近似 是什么意思

二阶近似 是什么意思 一、二阶近似的概念与举例 二阶近似是数学分析中通过泰勒展开对函数进行近似的方法,保留到二阶项(即包含一阶导数和二阶导数)。在优化问题(如模型训练)中,常用于近似损失函数,帮助更精准地更新模型参数。 举例: 假设损失函数为 L ( θ ) \mathc…...

STM32U575RIT6单片机(四)

作业: 使用I2C获取SHT20传感器温湿度 使用I2C获取AP3216C三合一传感器: 光照, 接近, 红外 三个功能 合并的传感器 #ifndef SHT20_H #define SHT20_H#include "stdint.h" #include "i2c.h" #include "stdio.h" //1、确定从机的设备地址(代码不…...

deepseek内网离线部署手册

前言 在当下 AI 浪潮汹涌的时代&#xff0c;DeepSeek 以其卓越的性能和出色的表现&#xff0c;迅速成为了众多专业人士和科技爱好者热议的焦点工具。在众多AI大模型的比拼中&#xff0c;DeepSeek 展现出了优越的实力。然而&#xff0c;对于许多企业和组织而言&#xff0c;出于…...

第七次作业,网络防御高级

拓扑&#xff1a;1 接口ip配置和区域划分&#xff1a; fw1&#xff1a; [fw1]interface GigabitEthernet 0/0/0 [fw1-GigabitEthernet0/0/0]service-manage all permit ​ [fw1]firewall zone trust [fw1-zone-trust]add interface GigabitEthernet 1/0/0 ​ ​ [fw1]securi…...

“AIGC”狂飙:一场正在撕裂传统产业链的“智能革命”

前言 在过去的几年中&#xff0c;人工智能技术经历了飞速的发展&#xff0c;深刻地改变了全球科技产业的格局。2023年被称为“AI元年”&#xff0c;这一年的标志性事件包括ChatGPT的发布和大语言模型的快速崛起&#xff0c;这些技术突破不仅引发了全球范围内的关注&#xff0c…...

【鸿蒙开发】Hi3861学习笔记- 定时器中断

00. 目录 文章目录 00. 目录01. 概述02. 定时器相关API2.1 hi_timer_create2.2 hi_timer_start2.3 hi_timer_stop2.4 hi_timer_delete 03. 硬件设计04. 软件设计05. 实验现象06. 附录 01. 概述 定时器&#xff0c;顾名思义就是用来计时的&#xff0c;我们常常会设定计时或闹钟…...

GB9706.1-2020部分定义

一、可拆卸的网电源连接器 1、器具耦合器 2、设备电源输入插口 3、可拆卸电源软电线 4、ME 设备 5、固定的网电源插座/多位插座(MSO) 6、网电源连接器 7、网电源插头 二、可拆卸的网电源连接 1、器具输入插座 2、患者连接 3、电线管 4、可拆卸电源软电线 5、外壳 6、固定…...

PCL 多项式拟合点法线(二维)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 这个思路其实很简单,假设我们有一组曲线点,我们可以对其拟合曲线并计算其导数来获取每个点的法向量,当然这一思路也可以扩展至三维。具体过程如下所示: 二、实现代码 PolyFit.h #pragma once/* ** 基于最小二乘…...

docker中安装Ghost报错Error: connect ECONNREFUSED 127.0.0.1:3306

今天尝试在docker中运行ghost报错 "Unknown database error"Error ID:500Error Code: ECONNREFUSED----------------------------------------Error: connect ECONNREFUSED 127.0.0.1:3306at /var/lib/ghost/versions/5.112.0/node_modules/knex-migrator/lib/datab…...

Java创造型模式之原型模式详解

设计模式是面向对象设计中的一种标准方法&#xff0c;用于解决常见的设计问题。原型设计模式&#xff08;Prototype Pattern&#xff09;是23种经典设计模式之一&#xff0c;属于创建型模式&#xff0c;它允许通过复制现有对象来创建新对象&#xff0c;而不是通过构造函数或工厂…...

3.17日Man2Marine

上游任务 vs. 下游任务 任务类型作用你的研究中的例子上游任务(Upstream Task)训练通用的音频表示,提供特征在大规模人类语音数据集上进行自监督学习下游任务(Downstream Task)利用上游任务学到的特征进行具体任务微调模型进行海洋哺乳动物叫声分类在 NLP(自然语言处理)…...

Fisher信息、梯度方差与学习率调度器的计算流程

Fisher信息、梯度方差与学习率调度器的计算流程 目录 Fisher信息、梯度方差与学习率调度器的计算流程**步骤1:定义模型与数据集****步骤2:计算梯度与Fisher信息****步骤3:计算梯度方差****步骤4:定义学习率调度器****步骤5:参数更新流程****示例输出****关键概念说明**步骤…...

209、不大于n的数的组合(python)

题目 已知一个数n和可组合的数字集合s&#xff0c;通过组合数字集合构成一个数x&#xff0c;使其不大于n。 例如&#xff1a; n 22356789 a [2, 3, 4, 8, 9] x 22349999 代码实现 n 22356789 a [2, 3, 4, 8, 9] a.sort() s str(n) tag True res [] for i in range…...

Matlab 汽车电子驻车系统仿真分析

1、内容简介 Matlab 176-汽车电子驻车系统仿真分析 可以交流、咨询、答疑 2、内容说明 略 摘 要&#xff1a; 论述了电子驻车制动控制系统的基本结构 、 组成及功能&#xff0c;并基于 Matlab/Simulink &#xff0c;构建了包括直流电机 、 丝杠螺母及其内部 零件和相关摩擦力…...

蓝桥杯备考----模拟算法 phone number

嗯。这道题可以在两个和三个数字加-&#xff0c;我们只要随便输出一个奏行 那么&#xff01;我们规范一下&#xff0c;我们尽可能的只在两个数字之间加&#xff0c;但是如果一共奇数个的话&#xff0c;我们就让最后三个成一组&#xff0c;也就是说&#xff0c;我们用的是个小贪…...

Unity WebGL IIS报错无法使用

Unity WebGL IIS报错无法使用 原因1&#xff1a;WebGL文件夹无访问权限 右键WebGL文件夹-属性 点击安全-编辑-添加 输入ever点击确定-应用即可...

【算法学习之路】11.并查集

并查集 前言一.简介二.基础并查集三.基础并查集题目12 四.种类并查集&#xff08;扩展域并查集&#xff09;五.种类并查集的题目 前言 我会将一些常用的算法以及对应的题单给写完&#xff0c;形成一套完整的算法体系&#xff0c;以及大量的各个难度的题目&#xff0c;目前算法也…...

第三课:Python递归编程艺术(从基础到优化)

递归&#xff0c;作为编程中一种优雅而强大的技术&#xff0c;以其简洁的代码风格和强大的问题解决能力&#xff0c;在算法设计中占据着举足轻重的地位。然而&#xff0c;递归的奥秘不仅仅在于其表面的简洁&#xff0c;更在于其背后的逻辑深度与优化技巧。本文将深入探讨递归编…...

插入排序程序并行化

一 插入排序 插入排序是稳定的原地排序算法,核心思想是逐步构建有序序列。对于未排序部分的每个元素,在已排序序列中从后向前扫描,找到合适位置插入。 二 并行化思路 1 分块排序 将数组分成多个子块,每个线程使用插入排序处理一块。 2 归并合并 将各有序子块归并成最终数…...

【系统架构设计师】操作系统 - 文件管理 ③ ( 树形目录结构 | 文件属性 | 绝对路径 与 相对路径 )

文章目录 一、树形目录结构1、树形目录结构 概念简介2、树形目录结构 组成3、文件属性4、树形目录结构 示例 二、绝对路径 与 相对路径1、绝对路径2、相对路径3、绝对路径 与 相对路径 对比 一、树形目录结构 1、树形目录结构 概念简介 " 树形目录结构 “ 又称为 ” 多级目…...

【量化科普】Standard Deviation,标准差

【量化科普】Standard Deviation&#xff0c;标准差 &#x1f680;量化软件开通 &#x1f680;量化实战教程 在量化投资领域&#xff0c;标准差&#xff08;Standard Deviation&#xff09;是一个非常重要的统计指标&#xff0c;用于衡量一组数据的离散程度。简单来说&#…...