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

Sentinel[超详细讲解]-7 -之 -熔断降级[异常比例阈值]

📖 主要讲解熔断降级之 --- 异常比例阈值  🚀

1️⃣ 背景

        Sentinel 以流量作为切入点,提供了很多的丰富的功能,例如🤗: 流量控制,熔断降级等,它能够有效的适用各个复杂的业务场景,如削峰填谷,集群的流量控制等。在这些场景中,异常比例阈值作为 Sentinel 熔断降级规则中的一个重要参数,起着至关重要的作用。当某个服务的异常比例 超过设定的阈值时,Sentinel 会自动触发熔断机制,迅速切断对该服务的请求,避免因持续异常导致资源耗尽,从而防止故障的扩散,进而保障了整个系统的稳定性。

2️⃣ 目的

   这篇文章我们将探讨熔断降级🚨 之异常比例数,我们希望达成以下具体的目标

  1. ✅深入剖析异常比例阈值的核心思想熔断机制
  2. ✅详细解读异常比例阈值相关的 核心参数
  3. ✅通过实际的代码示例和案例分析,展示异常比例阈值在不同场景下的配置方法和应用效果
  4. ✅总结异常比例阈值配置的最佳实践和注意事项。

3️⃣ 核心思想

        核心思想😍:当某个服务的 🔜 响应时间变慢,并且💔 慢请求的比例超过一定阈值时,系统自动触发熔断。

        目的🉑 : 避免无效请求占用资源,从而防止持续异常导致资源耗尽,保障了分布式系统的稳定性和可用性。

4️⃣ 熔断机制

       ✅ 统计窗口:系统会设定一个时间窗口(如10秒),在这个窗口内统计请求的异常情况。

       ✅ 异常比例计算:在统计窗口内,计算异常请求数占总请求数的比例。

       ✅阈值触发:当异常比例超过预设的阈值(如50%)时,触发熔断。

       ✅ 熔断开启:熔断器打开,后续请求直接快速失败,不再调用实际服务。

       ✅恢复尝试:经过设定的熔断时长后,熔断器会进入半开状态,允许少量请求通过以测试服务是否恢复。

流程图如下👉

5️⃣ 核心参数

核心参数说明🤖:

参数含义示例值作用
grade熔断策略类型ERROR_RATIO指定按异常比例熔断
count异常比例阈值0.5(50%)异常请求占比超过此值时触发熔断
timeWindow熔断持续时间10(秒)熔断后10秒进入半开状态(试探恢复)
minRequestAmount最小请求数10统计窗口内请求数≥10才计算比例
statIntervalMs统计窗口长度10000(10秒)每10秒统计一次异常比例

6️⃣ 代码事例

下面是一段配置异常比例阈值熔断规则的关键代码
public static void initErrorRatioRule() { List<DegradeRule> rules = new ArrayList<>();DegradeRule rule = new DegradeRule();rule.setResource("error_service");rule.setGrade(CircuitBreakerStrategy.ERROR_RATIO.getType());rule.setCount(0.5); rule.setTimeWindow(10); rule.setMinRequestAmount(5); rule.setStatIntervalMs(1000); rules.add(rule);DegradeRuleManager.loadRules(rules); 
}

✅代码说明

1.创建规则列表:这行代码创建了一个DegradeRule类型的列表rules,用于存储熔断规则。

List<DegradeRule> rules = new ArrayList<>();

2.创建单个熔断规则:用于配置具体的熔断规则。

DegradeRule rule = new DegradeRule();

3.设置资源名:保护的资源名称为error_service。在 Sentinel 中,资源是一个抽象概念,可以是一个方法、一 个接口、一个服务等。通过指定资源名,Sentinel 可以对该资源进行监控和规则应用。

rule.setResource("error_service");

 4.设置熔断策略类型:熔断策略类型设置为ERROR_RATIO,即按异常比例熔断。这表示 Sentinel 会根据异常比例来判断 是否触发熔断。

rule.setGrade(CircuitBreakerStrategy.ERROR_RATIO.getType());

5.设置异常比例阈值:设置异常比例阈值为 0.5,即 50%。当在统计窗口内,该资源的异常请求比例超过 50% 时,就满足了 触发熔断的一个条件。

rule.setCount(0.5);

6. 设置熔断持续时间:设置熔断持续时间为 10 秒。当触发熔断后,在接下来的 10 秒内,对该资源的请求将被熔断,即直接 返回,而不会实际调用服务。10 秒后,熔断器会进入半开状态,进行试探性恢复。

rule.setTimeWindow(10); 

7.设置最小请求数:在统计窗口内,只有请求数大于或等于 5 时,才会计算异常比例并判断是否触发熔断。如果请求数小于 5,即使异常比例超过阈值,也不会触发熔断。这是为了避免因请求数过少导致的误判。

rule.setMinRequestAmount(5); 

8.设置统计窗口长度: 设置统计窗口长度为 1000 毫秒,即 1 秒。Sentinel 会每 1 秒统计一次该资源的请求情况,包括总请求数、异常请求数等,以计算异常比例并判断是否满足熔断条件。

rule.setStatIntervalMs(1000); 

9.加载熔断规则:

rules.add(rule);​
DegradeRuleManager.loadRules(rules); 

触发条件🈲

  • 在10秒统计窗口内:

    • 总请求数 ≥ minRequestAmount(5次)。

    • 异常请求比例 > count(50%)。

    • 示例

      • 总请求数:20次。

      • 异常请求数:12次。

      • 异常比例:12/20 = 60% > 50% → 触发熔断。

模拟调用🔧

import com.alibaba.csp.sentinel.Entry;
import com.alibaba.csp.sentinel.SphU;
import com.alibaba.csp.sentinel.slots.block.BlockException;public class ErrorRatioSimulator {public static void main(String[] args) {// 1. 初始化熔断规则ErrorRatioCircuitBreakerDemo.initErrorRatioRule();// 2. 模拟请求(50%概率抛出异常)while (true) {Entry entry = null;try {entry = SphU.entry("orderService");// 随机生成异常(50%概率)if (Math.random() > 0.5) {throw new RuntimeException("Mock Error");}System.out.println("请求成功");} catch (BlockException e) {System.out.println("请求被熔断拦截");} catch (Exception e) {// 业务异常会计入统计System.out.println("请求异常: " + e.getMessage());} finally {if (entry != null) {entry.exit();}}}}
}

7️⃣ 最佳实践和注意事项

        不同业务场景对异常的容忍度和影响程度差异巨大。对于电商支付等关键业务,任何异常都可能导致资金损失或用户流失,应设置较低的异常比例阈值,如 10% - 20%,以确保服务的高可用性;而对于一些非关键业务,如商品评论的加载服务,异常比例阈值可适当提高至 30% - 50%,在保证基本服务质量的前提下,减少不必要的熔断。同时,要考虑业务的流量高峰和低谷期。在高峰时,系统负载高,服务出现短暂异常的可能性增加,可适当放宽阈值;低谷时,系统资源充足,可收紧阈值,更严格地监控服务质量等。

8️⃣ 总结🚀

        与基于异常数的熔断策略相比,异常比例阈值策略在关注服务异常情况、适应请求量波动场景等方面具有独特优势,但也存在对异常分布不均匀情况处理不足等问题。在应用实践中,合理设置参数、建立完善的监控与调整策略是确保异常比例阈值有效发挥作用的关键。

相关文章:

Sentinel[超详细讲解]-7 -之 -熔断降级[异常比例阈值]

&#x1f4d6; 主要讲解熔断降级之 --- 异常比例阈值 &#x1f680; 1️⃣ 背景 Sentinel 以流量作为切入点&#xff0c;提供了很多的丰富的功能&#xff0c;例如&#x1f917;&#xff1a; 流量控制&#xff0c;熔断降级等&#xff0c;它能够有效的适用各个复杂的业务场景&am…...

程序化广告行业(56/89):S2S对接与第三方广告监测全解析

程序化广告行业&#xff08;56/89&#xff09;&#xff1a;S2S对接与第三方广告监测全解析 大家好&#xff01;在前面的博客中&#xff0c;我们一起深入学习了程序化广告的人群标签、用户标签生成、Look Alike原理&#xff0c;以及DMP与DSP对接和数据统计原理等内容。今天&…...

C++进阶知识复习 31~38

目的 写这一系列文章的目的主要是为了秋招时候应对计算机基础问题能够流畅的回答出来 &#xff08;如果不整理下 磕磕绊绊的回答会被认为是不熟悉&#xff09; 本文章题目的主要来源来自于 面试鸭 部分面试鸭上没有而牛客网上有的博主会进行查缺补漏 题目编号按照面试鸭官网…...

Spring Boot 整合mybatis

2025/4/3 向全栈工程师迈进&#xff01;&#xff01;&#xff01; 配置文件在实际开发中如何使用呢&#xff0c;接下去将通过Spring Boot整合mybatis来看配置文件如何在实际开发中被使用。 一、引入mybatis起步依赖 在pom.xml中引入mybatis的起步依赖&#xff0c;如下。 在这…...

新能源汽车测试中的信号调理模块:从原理到实战应用

摘要 信号调理模块&#xff08;Signal Conditioning Module, SCM&#xff09;是新能源汽车&#xff08;NEV&#xff09;测试系统中的关键环节&#xff0c;直接影响数据采集的精度与可靠性。本文面向HIL测试工程师、电机测试工程师及整车动力经济性测试工程师&#xff0c;系统性…...

一篇关于Netty相关的梳理总结

一篇关于Netty的梳理总结 一、Netty1.1 什么是netty&#xff1f;为什么要用netty1.2 Netty是什么&#xff1f; 二、Netty关于网络基础2.1 线程池2.2 线程池线程的生命周期和状态2.3 为什么要使用线程池2.4 简述线程池原理&#xff0c;FixedThreadPool用的阻塞队列是什么2.5 并发…...

纺织车间数字化转型:降本增效新路径

在纺织行业竞争日益激烈的当下&#xff0c;如何提升生产效率、降低成本成为企业关注的焦点。某纺织车间通过创新引入明达技术MBox20网关并部署IOT 平台&#xff0c;成功接入千台设备&#xff0c;实现了生产模式的重大变革。​ 以往&#xff0c;纺织车间生产犹如黑箱&#xff0c…...

递归典例---汉诺塔

https://ybt.ssoier.cn/problem_show.php?pid1205 #include<bits/stdc.h> #define endl \n #define pii pair<int,int>using namespace std; using ll long long;void move(int n,char a,char b,char c) // n 个盘子&#xff0c;通过 b&#xff0c;从 a 移动到 …...

Unity2D:从零开始制作一款跑酷游戏!

目录 成品展示 美术资源 制作步骤 场景预布设&#xff1a; 实现人物基础功能&#xff1a; 移动背景——横向卷轴&#xff1a; 生成障碍物&#xff1a; 生成敌人与攻击逻辑&#xff1a; UI制作与重新开始&#xff1a; 导出游戏&#xff1a; 小结 大家小时候都玩过《…...

维拉工时自定义字段:赋能项目数据的深度洞察 | 上新预告

原文链接&#xff1a;维拉工时自定义字段&#xff1a;赋能项目数据的深度洞察 | 上新预告 在项目管理实践中&#xff0c;每个企业都有独特的数据统计与分析需求。为了帮助用户实现个性化数据建模&#xff0c;从而更精准地衡量项目进度和预算投入&#xff0c;维拉工时全新升级的…...

C++ | 文件读写(ofstream/ifstream/fstream)

一、C文件操作核心类 C标准库通过<fstream>提供了强大的文件操作支持&#xff0c;主要包含三个关键类&#xff1a; 类名描述典型用途ofstream输出文件流&#xff08;Output File Stream&#xff09;文件写入操作ifstream输入文件流&#xff08;Input File Stream&#…...

flux文生图部署笔记

目录 依赖库: 文生图推理代码cpu: cuda版推理: 依赖库: tensorrt安装: pip install nvidia-pyindex # 添加NVIDIA仓库索引 pip install tensorrt 文生图推理代码cpu: import torch from diffusers import FluxPipelinemodel_id = "black-forest-labs/FLUX.1-s…...

二语习得理论(Second Language Acquisition, SLA)如何学习英语

二语习得理论&#xff08;Second Language Acquisition, SLA&#xff09;是研究学习者如何在成人或青少年阶段学习第二语言&#xff08;L2&#xff09;的理论框架。该理论主要关注语言习得过程中的认知、社会和文化因素&#xff0c;解释了学习者如何从初学者逐渐变得流利并能够…...

策略模式实际用处,改吧改吧直接用,两种方式

controller RestController RequestMapping("admin/test") RequiredArgsConstructor(onConstructor __(Autowired)) public class TestController {Autowiredprivate VideoFactory VideoFactory;GetMapping("getList")public R getList(){// 第一种方式T…...

计算机网络-TCP的流量控制

内容来源&#xff1a;小林coding 本文是对小林coding的TPC流量控制的精简总结 什么是流量控制 发送方不能无脑的发数据给接收方&#xff0c;要考虑接收方处理能力 如果一直无脑的发数据给对方&#xff0c;但对方处理不过来&#xff0c;那么就会导致触发重发机制 从而导致网…...

搬砖--贪心+排序的背包

a在上面b在下面->a.v-M-b.m>b.v-M-a.m->剩余率大 所以我先遍历a&#xff0c;让a在上面 这就是要考虑贪心排序的01背包 因为它有放的限制条件 #include<bits/stdc.h> using namespace std; #define N 100011 typedef long long ll; typedef pair<ll,int>…...

git克隆数据失败

场景&#xff1a;当新到一家公司&#xff0c;然后接手了上一个同时的电脑&#xff0c;使用git克隆代码一直提示无法访问&#xff0c;如图 原因&#xff1a;即使配置的新的用户信息。但是window记录了上一个同事的登录信息&#xff0c;上一个同事已经被剔除权限&#xff0c;再拉…...

Dart 语法

1. 级联操作符 … var paint Paint()..color Colors.black..strokeCap StrokeCap.round..strokeWidth 5.0;2. firstWhereOrNull 3. 隐藏或导入部分组件 // Import only foo. import package:lib1/lib1.dart show foo;// Import all names EXCEPT foo. import package:lib…...

34、web前端开发之JavaScript(三)

十. DOM操作详解 1、DOM简介 文档对象模型&#xff08;DOM&#xff0c;Document Object Model&#xff09;是JavaScript与网页内容交互的接口。它将HTML文档表示为一种树状结构&#xff08;DOM树&#xff09;&#xff0c;其中每个节点代表文档的一部分&#xff08;例如元素、…...

自适应卡尔曼滤波

目录 自适应卡尔曼滤波 自适应卡尔曼滤波 主要作用,去抖动 AdaptiveKalmanFilter.py import cv2 import numpy as np from collections import deque# ------------------ 核心去抖算法 ------------------ import cv2 import numpy as np from collections import deque#…...

EIP-712:类型化结构化数据的哈希与签名

1. 引言 以太坊 EIP-712: 类型化结构化数据的哈希与签名&#xff0c;是一种用于对类型化结构化数据&#xff08;而不仅仅是字节串&#xff09;进行哈希和签名 的标准。 其包括&#xff1a; 编码函数正确性的理论框架&#xff0c;类似于 Solidity 结构体并兼容的结构化数据规…...

Day 3:Leetcode 比特位计数+只出现一次的数字 II

比特位计数 本质是一个递推&#xff0c;时间复杂度O(n)&#xff0c;空间复杂度O(n)。 class Solution { public:vector<int> countBits(int n) {vector<int> ans(n 1);ans[0] 0;//ans[1] 1;for(int i 1; i < n; i){if(i & 1){ans[i] ans[i/2] 1;}else…...

CentOS7安装conda

root用户登录虚拟机后更新yum yum update 下载Miniconda&#xff0c;路径就在/root下 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh conda分为Miniconda和Anaconda, Miniconda是Conda的轻量级版本&#xff0c;只包含conda和Python&#xf…...

[Linux]从零开始的vs code交叉调试arm Linux程序教程

一、前言 最近的项目中需要集成rknn的视觉识别&#xff0c;在这之前我并且没有将rknn集成到自己项目的经验。这里我需要在rknn原本demo的基础上我还需要集成自己的业务代码。但是又有一个问题&#xff0c;原本rknn我们都是使用交叉编译编译到开发板上的&#xff0c;并且我们还要…...

【顶刊级科研绘图】AI支持下Nature级数据可视化(如何画图、如何标注、如何改图、如何美化、如何组合、如何排序)

技术点目录 第一章、绘图原则与概念&#xff1a;规范清晰简洁自明第二章、DeepSeek、ChatGPT、R绘图系统&#xff1a;八仙过海各显神通第三章、美学设计与细节&#xff1a;完美图表华丽呈现第四章、数据类型与图表&#xff1a;宝典在手各个击破第五章、统计分析与可视化&#x…...

CSRF跨站请求伪造——入门篇【DVWA靶场low级别writeup】

CSRF跨站请求伪造——入门篇 0. 前言1. 什么是CSRF2. 一次完整的CSRF攻击 0. 前言 本文将带你实现一次完整的CSRF攻击&#xff0c;内容较为基础。需要你掌握的基础知识有&#xff1a; 了解cookie&#xff1b;已经安装了DVWA的靶场环境&#xff08;本地的或云的&#xff09;&am…...

Spring Boot应用中实现Jar包热更新的实践指南

Spring Boot应用中实现Jar包热更新的实践指南 一、引言 在现代软件开发中&#xff0c;快速迭代和持续交付是至关重要的。对于基于Spring Boot的应用程序&#xff0c;一旦部署到生产环境&#xff0c;传统的更新方式通常是重新打包并重启应用&#xff0c;这不仅耗时&#xff0c…...

JVM深入原理(七)(一):运行时数据区

目录 7. JVM运行时数据区 7.1. 运行时数据区-总览 7.2. 运行时数据区-查看内存对象 7.3. 运行时数据区-程序计数器 7.3.1. 程序计数器-作用 7.3.2. 字节码指令执行流程 7.4. 运行时数据区-Java虚拟机栈 7.4.1. 栈-概述 7.4.2. 栈帧-组成 7.4.2.1. 栈帧-帧数据 7.4.2…...

约瑟夫环的四种(数组,链表,递归,迭代)解决方案,与空间、时间复杂度分析

以下方法均没有考虑结果集的空间与时间复杂度 1.数组解法 实现代码&#xff08;未优化&#xff09; class Main {public static void main(String[] args){Scanner read new Scanner(System.in);int n read.nextInt();int m read.nextInt();int[] people new int[n]; //…...

skynet.start 的作用详细解析

目录 skynet.start 的作用详细解析1. 功能概述2. 基本用法3. 关键作用(1) 注册消息处理函数(2) 启动事件循环(3) 服务生命周期管理 4. 与其他函数的协作5. 未调用 skynet.start 的后果6. 高级场景&#xff1a;何时不需要 skynet.start7. 总结 skynet.start 的作用详细解析 在 …...

Apache Doris 2025 Roadmap:构建 GenAI 时代实时高效统一的数据底座

在全球 290 位开发者的协作下&#xff0c;Apache Doris 在 2024 年完成了 7000 次代码提交&#xff0c;并发布了 22 个版本&#xff0c;实现在实时分析、湖仓一体和半结构化数据分析等核心场景的技术突破及创新。 2025 年&#xff0c;Apache Doris 社区将秉承“以场景驱动创新…...

springboot+easyexcel实现下载excels模板下拉选择

定义下拉注解 Target(ElementType.FIELD) Retention(RetentionPolicy.RUNTIME) public interface ExcelDropDown {/*** 固定下拉选项*/String[] source() default {};/*** 动态数据源key&#xff08;从上下文中获取&#xff09;*/String sourceMethod() default "";…...

vue3+ts+element-plus 开发一个页面模块的详细过程

目录、文件名均使用kebab-case&#xff08;短横线分隔式&#xff09;命名规范 子组件目录&#xff1a;./progress-ctrl/comps 1、新建页面文件 progress-ctrl.vue <script setup lang"ts" name"progress-ctrl"></script><template>&l…...

软考《信息系统运行管理员》- 7.1 物联网运维

物联网的概念及特征 物联网是在计算机互联网的基础上&#xff0c;通过射频识别 (RFID) 、 无线传感器、红外感应器、 全球定位系统、激光扫描器等信息传感设备&#xff0c;按约定的协议&#xff0c;把物与物之间通过网络连接起来&#xff0c; 进行信息交换和通信&#xff0c;以…...

【GPT入门】第33 课 一文吃透 LangChain:chain 结合 with_fallbacks ([]) 的实战指南

[TOC](【GPT入门】第33课 一文吃透 LangChain&#xff1a;chain 结合 with_fallbacks ([]) 的实战指南) 1. fallback概述 模型回退&#xff0c;可以设置在llm上&#xff0c;也可以设置在chain上&#xff0c;都带有with_fallbacks([])函数 2. llm的回退 2.1 代码 核心代码&…...

裴蜀定理:整数解的奥秘

裴蜀定理&#xff1a;整数解的奥秘 在数学的世界里&#xff0c;裴蜀定理&#xff08;Bzout’s Theorem&#xff09;是数论中一个非常重要的定理&#xff0c;它揭示了二次方程和整数解之间的关系。它不仅仅是纯粹的理论知识&#xff0c;还在计算机科学、密码学、算法优化等多个…...

Table as Thought论文精读

标题&#xff1a;Table as Thought: Exploring Structured Thoughts in LLM Reasoning 作者&#xff1a;Zhenjie Sun, Naihao Deng, Haofei Yu, Jiaxuan You 单位&#xff1a;University of Illinois Urbana-Champaign, University of Michigan 摘要&#xff1a; llm的推理…...

PyQt6实例_A股日数据维护工具_使用

目录 前置&#xff1a; 下载预备更新的数据 使用工具更新 用工具下载未复权、前复权、权息数据 在PostgreSQL添加两个数据表 工具&视频 前置&#xff1a; 1 本系列将以 “PyQt6实例_A股日数据维护工具” 开头放置在“PyQt6实例”专栏 2 日数据可在“数据库”专栏&…...

MySQL客户端工具-图形化工具-DataGrip 安装与使用

一. 常见的图形化工具 二. DataGrip 安装 官网&#xff1a;DataGrip&#xff1a;由 JetBrains 开发的数据库和 SQL 跨平台 IDE 二. DataGrip 使用...

企业管理系统的功能架构设计与实现

一、企业管理系统的核心功能模块 企业管理系统作为现代企业的中枢神经系统&#xff0c;涵盖了多个核心功能模块&#xff0c;以确保企业运营的顺畅与高效。这些功能模块通常包括&#xff1a; 人力资源管理模块&#xff1a;负责员工信息的录入、维护、查询及统计分析&#xff0c…...

1.Qt信号与槽

本篇主要介绍信号和槽&#xff0c;如何关联信号和槽以及用QPixmap在窗口中自适应显示图片 本文部分ppt、视频截图原链接&#xff1a;[萌马工作室的个人空间-萌马工作室个人主页-哔哩哔哩视频] 1. 信号 一般不需要主动发送信号&#xff0c;只有自定义的一些控件才需要做信号的…...

再生认证体系有哪些?不同标准对应的要求及可以做的审核机构

再生认证体系 标准 GRS再生回收认证要求 再生原材料的上游企业&#xff1a;需要具备GRS认证证书&#xff0c;以确保原材料的可追溯性和再生成分。 认证条件&#xff1a; 最终商品的再生成分比例必须至少为20%。 只有由至少50%的回收材料制成的产品才能贴上GRS标签。 认证机构…...

[CISSP] [6] 密码学和对称密钥算法

密码学的目标 1. 机密性&#xff08;Confidentiality&#xff09; 目标&#xff1a;保护信息不被未授权访问。 通过 加密&#xff08;Encryption&#xff09;技术确保数据只能被授权方解密和读取。主要方法&#xff1a; 对称加密&#xff08;AES、3DES&#xff09;&#xff…...

thinkphp每条一级栏目中可自定义添加多条二级栏目,每条二级栏目包含多个字段信息

小程序客户端需要展示团购详情这种结构的内容,后台会新增多条套餐,每条套餐可以新增多条菜品信息,每条菜品信息包含菜品名称,价格,份数等字段信息,类似于购物网的商品多规格属性,数据表中以json类型存储,手写了一个后台添加和编辑的demo 添加页面 编辑页面(json数据…...

混杂模式(Promiscuous Mode)与 Trunk 端口的区别详解

一、混杂模式&#xff08;Promiscuous Mode&#xff09; 1. 定义与工作原理 定义&#xff1a;混杂模式是网络接口的一种工作模式&#xff0c;允许接口接收通过其物理链路的所有数据包&#xff0c;而不仅是目标地址为本机的数据包。工作层级&#xff1a;OSI 数据链路层&#x…...

Spring Boot项目信创国产化适配指南

将 Spring Boot 项目适配信创国产化环境&#xff0c;需要从底层基础设施到上层应用组件进行全面替换和调整。以下是主要替换点和适配步骤的总结&#xff1a; 一、基础软件替换 1. JDK 替换 国外JDK&#xff1a;Oracle JDK、OpenJDK国产JDK&#xff1a; 阿里龙井&#xff08;D…...

MySQL:数据类型

数值类型 数值类型用于存储整数、小数、浮点数等&#xff0c;主要分为整数类型和浮点类型。 整数类型 数据类型存储大小取值范围&#xff08;有符号&#xff09;取值范围&#xff08;无符号&#xff09;说明TINYINT1字节-128 ~ 1270 ~ 255小整数&#xff0c;如布尔值&#x…...

maven引入项目内本地包方法

最近在写java实现excel转pdf功能&#xff1b; 网上有个包很好用&#xff0c;免费&#xff1a;spire.xls.free-5.3.0.jar。 但是maven打包项目时报错&#xff0c;找不到这个包。 jar包位置如下&#xff1a; 在项目/src/jar/spire.xls.free-5.3.0.jar。 解决方法&#xff1a…...

ARP协议

ARP协议 ARP协议的作用 当网络设备有数据要发送给另一台网络设备时&#xff0c;必须要知道对方的网络层地址&#xff08;即IP地址&#xff09;。IP地址由网络层来提供&#xff0c;但是仅有IP地址是不够的&#xff0c;IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧…...

科技赋能安居梦:中建海龙以模块化革新重塑城市更新范式

在北京市西城区桦皮厂胡同&#xff0c;一栋始建于上世纪70年代的住宅楼正经历着一场脱胎换骨的蜕变。这座曾被鉴定为D级危房的建筑&#xff0c;在中建海龙科技有限公司&#xff08;以下简称“中建海龙”&#xff09;的匠心打造下&#xff0c;仅用三个月便完成"原拆原建&qu…...