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

k8s 部署spring项目+动态启动pod

在 Kubernetes 中部署 Spring Boot 项目并实现 动态管理 Pod(自动扩缩容、滚动更新等),需要结合 Docker 镜像构建Deployment 配置Service 暴露HPA(Horizontal Pod Autoscaler) 等组件。以下是完整操作步骤:


1. 构建 Spring Boot 项目的 Docker 镜像

(1) 项目打包

确保 Spring Boot 项目已编译生成可执行的 JAR 文件(如 target/app.jar)。

(2) 编写 Dockerfile
# 使用 OpenJDK 作为基础镜像
FROM openjdk:11-jre-slim# 设置工作目录
WORKDIR /app# 复制 JAR 文件到镜像中
COPY target/app.jar /app/app.jar# 暴露端口(与 Spring Boot 的 server.port 一致)
EXPOSE 8080# 启动命令
CMD ["java", "-jar", "app.jar"]
(3) 构建镜像
# 在项目根目录执行
docker build -t your-dockerhub-username/spring-app:1.0.0 .
(4) 推送镜像到仓库(可选)
docker push your-dockerhub-username/spring-app:1.0.0

2. 编写 Kubernetes 部署文件

(1) Deployment 配置(deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: spring-app-deployment
spec:replicas: 3   # 初始副本数selector:matchLabels:app: spring-appstrategy:rollingUpdate:maxSurge: 1       # 滚动更新时最大临时副本数maxUnavailable: 0 # 确保零停机更新type: RollingUpdatetemplate:metadata:labels:app: spring-appspec:containers:- name: spring-appimage: your-dockerhub-username/spring-app:1.0.0ports:- containerPort: 8080resources:requests:cpu: "100m"  # 最小 CPU 资源memory: "256Mi"limits:cpu: "500m"  # 最大 CPU 资源memory: "512Mi"livenessProbe:   # 存活检查httpGet:path: /actuator/healthport: 8080initialDelaySeconds: 30periodSeconds: 10readinessProbe:  # 就绪检查httpGet:path: /actuator/healthport: 8080initialDelaySeconds: 20periodSeconds: 5
(2) Service 配置(service.yaml
apiVersion: v1
kind: Service
metadata:name: spring-app-service
spec:selector:app: spring-appports:- protocol: TCPport: 80targetPort: 8080type: ClusterIP  # 或 LoadBalancer(云环境)

3. 动态管理 Pod 的关键配置

(1) 自动扩缩容(HPA)
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:name: spring-app-hpa
spec:scaleTargetRef:apiVersion: apps/v1kind: Deploymentname: spring-app-deploymentminReplicas: 2   # 最小副本数maxReplicas: 10  # 最大副本数metrics:- type: Resourceresource:name: cputarget:type: UtilizationaverageUtilization: 50  # CPU 使用率超过 50% 时扩容
(2) 触发部署
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
kubectl apply -f hpa.yaml

4. 动态管理操作示例

(1) 手动扩缩容
# 调整副本数
kubectl scale deployment spring-app-deployment --replicas=5
(2) 滚动更新镜像
# 修改 deployment.yaml 中的镜像版本
kubectl set image deployment/spring-app-deployment spring-app=your-dockerhub-username/spring-app:2.0.0
(3) 回滚到上一版本
kubectl rollout undo deployment/spring-app-deployment
(4) 查看 HPA 状态
kubectl get hpa

5. 配置管理进阶

(1) 使用 ConfigMap 管理 Spring Boot 配置
apiVersion: v1
kind: ConfigMap
metadata:name: spring-app-config
data:application.properties: |server.port=8080spring.datasource.url=jdbc:mysql://mysql-service:3306/mydb

在 Deployment 中挂载 ConfigMap:

spec:containers:- name: spring-appvolumeMounts:- name: config-volumemountPath: /app/configvolumes:- name: config-volumeconfigMap:name: spring-app-config
(2) 使用 Secret 管理敏感信息
apiVersion: v1
kind: Secret
metadata:name: db-secret
type: Opaque
data:username: dXNlcm5hbWU=  # Base64 编码password: cGFzc3dvcmQ=

在 Deployment 中引用 Secret:

env:
- name: DB_USERNAMEvalueFrom:secretKeyRef:name: db-secretkey: username

6. 监控与日志

(1) 查看 Pod 日志
kubectl logs -f <pod-name> --tail=100
(2) 集成 Prometheus + Grafana

在 Deployment 中启用 Spring Boot Actuator 的 Prometheus 端点:

management:endpoints:web:exposure:include: prometheusmetrics:tags:application: spring-app

常见问题排查

  1. Pod 无法启动
    • 检查镜像名称是否正确:kubectl describe pod <pod-name>
    • 查看容器日志:kubectl logs <pod-name>

  2. 服务无法访问
    • 确认 Service 的 selector 是否匹配 Pod 标签。
    • 检查端口映射:kubectl describe service spring-app-service

  3. HPA 不生效
    • 确认 Metrics Server 已安装:kubectl top nodes
    • 检查资源请求配置:kubectl describe hpa spring-app-hpa


总结

核心组件:Deployment 管理 Pod 生命周期,Service 暴露服务,HPA 实现自动扩缩容。
动态管理:通过 kubectl scalekubectl rollout 和 HPA 实现弹性伸缩。
最佳实践
• 使用健康检查(livenessProbe/readinessProbe)确保高可用。
• 通过 ConfigMap 和 Secret 分离配置与代码。
• 监控资源使用率以优化 HPA 策略。

相关文章:

k8s 部署spring项目+动态启动pod

在 Kubernetes 中部署 Spring Boot 项目并实现 动态管理 Pod&#xff08;自动扩缩容、滚动更新等&#xff09;&#xff0c;需要结合 Docker 镜像构建、Deployment 配置、Service 暴露和 HPA&#xff08;Horizontal Pod Autoscaler&#xff09; 等组件。以下是完整操作步骤&…...

【DINO】

detr 简化了检测流水线,消除了许多手工设置的组件 单阶段目标检测 需要前置的backbone抽取特征 faster_rcnn和yolo都是基于anchor,anchor当作候选框,NMS非极大值抑制 重叠的框只保存一个,效率低 所以detr来了,transformer,既有encoder又有decoder,套一个transforme…...

Nature重磅:后晶体管时代光子芯片革新AI计算!光子处理器运行《吃豆人》性能比肩电子,能效提升超500倍

随着人工智能&#xff08;AI&#xff09;模型规模以及应用范围的不断拓展&#xff0c;性能上限和能耗瓶颈正逐渐显现出来。大语言模型&#xff08;LLM&#xff09;、强化学习和卷积神经网络等 AI 模型的复杂性不断增长&#xff0c;正在将传统电子计算推向极限&#xff0c;能源需…...

Excel表格文件分组归并——通过sql

将 Excel 表转换为 SQL 数据库并直接执行 SQL 查询以获得所需的输出。以下是使用 SQL 实现此目的的步骤&#xff1a; 第 1 步&#xff1a;将 Excel 数据导入 MySQL 假设您设置了 MySQL 数据库&#xff0c;则需要先将 Excel 数据导入到表中。您可以使用语句或工具&#xff08;…...

2.微服务拆分流程

文章目录 交易服务1.1.创建项目1.2.引入依赖1.3.创建交易服务启动类1.4.创建并编写配置文件1.5.代码连接池4.2.1.引入依赖4.2.2.开启连接池抽取Feign客户端 1.6.抽取ItemClient接口1.7.抽取CartClient接口改造OrderServiceImpl扫描包 1.8.数据库1.9.配置启动项1.10.测试 以拆分…...

vue入门:计算属性computer监听器watch

文章目录 计算属性computer定义计算属性在模板中使用计算属性计算属性的使用场景 监听器watch基本语法深度监听立即执行监听数组异步操作数据校验副作用处理清理监听器 watch 与 computed 的区别 计算属性computer 在 Vue 中&#xff0c;计算属性&#xff08;computed&#xf…...

Jenkins 发送钉钉消息

这里不介绍 Jenkins 的安装&#xff0c;可以网上找到很多安装教程&#xff0c;重点介绍如何集成钉钉消息。 需要提前准备钉钉机器人的 webhook 地址。&#xff08;网上找下&#xff0c;很多教程&#xff09; 下面开始配置钉钉机器人&#xff0c;登录 Jenkins&#xff0c;下载 …...

numpy练习

生成一个2行3列随机整数二维数组a使用Numpy方法对&#xff08;1&#xff09;中数组a进行整体求积使用Numpy方法对&#xff08;1&#xff09;中数组a进行求每列最大值索引定义一个NumPy一维数组 b&#xff0c;元素为 1 到 10 的整数获取&#xff08;4&#xff09;数组b中最后五个…...

Ethers.js 开发入门:核心功能、最佳实践与避坑指南

引言 Ethers.js 是当前 Web3 开发领域增长最快、备受开发者青睐的以太坊 JavaScript 库之一。在本篇文章中&#xff0c;我们将介绍 Ethers.js 的核心功能和用法&#xff0c;包括如何连接区块链节点、与钱包交互、读取智能合约数据、发送交易等。同时&#xff0c;我们还将分享使…...

SQL查询语句的​​书写顺序​​

一、标准SQL书写顺序&#xff08;逻辑顺序&#xff09; 书写顺序是开发者编写SQL时遵循的语法规则&#xff0c;逻辑上更贴近“声明式”需求描述。以下是​​从前往后​​的书写顺序&#xff1a; SELECT[DISTINCT] 列名或表达式 FROM表名或子查询 [JOIN ... ON ...] WHERE行级…...

探索加密期权波动率交易的系统化实践——动态对冲工具使用

Trading Volatility – What Are My Options? 在本文中&#xff0c;我们将介绍一些如何交易资产波动性&#xff08;而非资产价格&#xff09;的示例。为了帮助理解&#xff0c;我们将使用 Deribit 上提供的几种不同产品&#xff0c;包括但不限于期权。我们将尽可能消除对标的价…...

文件操作和 IO - 3

目录 文件内容的读写 —— 数据流 InputStream 概述 方法&#xff1a; 说明&#xff1a; FileInputStream 概述 read 方法&#xff1a; OutputStream 概述 方法 说明 FileOutputStream 概述 write 方法&#xff1a; Reader 字符流 Writer 字符流 总结&#xff1a…...

Kubernetes中的Label和Selector核心作用与应用场景

一. Label 和 Selector 的核心概念 Label 和 Selector 是 Kubernetes 中实现灵活资源管理的基石&#xff0c;贯穿部署、服务发现、监控等核心场景。通过合理设计标签&#xff0c;用户可以高效实现自动化运维与精准资源控制。 Label&#xff08;标签&#xff09;&#xff1a; K…...

L1-6 大勾股定理

题目 大勾股定理是勾股定理的推广&#xff1a;对任何正整数 n 存在 2n1 个连续正整数&#xff0c;满足前 n1 个数的平方和等于后 n 个数的平方和。例如对于 n1 有 3^2 4^2 5^2 &#xff1b;n2 有 10^2 11^2 12^2 13^2 14^2 等。给定 n&#xff0c;本题就请你找出对应的解。 输…...

esp32-idf Linux 环境安装教程

一、提前说明 1. 系统环境 Ubuntu22.04 2. 适配芯片 ESP32S3 3. idf版本 v5.4.1(截止2025年4月13日为最新版本) 二、安装步骤 1. 安装前置依赖 sudo apt-get install git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev l…...

关于使用 nuitka进行构建python应用的一些配置,以及github action自动构建;

1. 通用配置 # 设置输出目录和文件名output_dir "dist"app_name "CursorAutoFree"# 基础命令行选项base_options ["--follow-imports", # 跟踪导入"--enable-plugintk-inter", # 启用 Tkinter 支持"--include-packagecusto…...

C++开山解惑

. Solution & Code 本题解仅适用于 C 选手。 这道题可谓是 C 中最基础的题目之一&#xff0c;先上两份代码&#xff1a; #include <cstdio> using namespace std;int main() {long long a, b;scanf("%lld%lld", &a, &b);printf("%lld"…...

Pytorch深度学习框架60天进阶学习计划 - 第41天:生成对抗网络进阶(二)

Pytorch深度学习框架60天进阶学习计划 - 第41天&#xff1a;生成对抗网络进阶&#xff08;二&#xff09; 7. 实现条件WGAN-GP # 训练条件WGAN-GP def train_conditional_wgan_gp():# 用于记录损失d_losses []g_losses []# 用于记录生成样本的多样性&#xff08;通过类别分…...

路由策略/策略路由之route-policy

思科名称&#xff1a;route-map、match、set Route-policy 是一个非常重要的基础性策略工具。你可以把它想象成一个拥有多个节点&#xff08;node&#xff09;的列表&#xff08;这些 node 按编号大小进行排序&#xff09;。在每个节点中&#xff0c;可以定义条件语句及执行语…...

《嵌入式系统原理》一些题目

1 &#xff0e;ARM 的存储格式&#xff1f;默认的存储模式是&#xff1f; 大端格式和小端格式&#xff0c;默认为小端模式 2 &#xff0e;当前程序状态寄存器&#xff1f;&#xff08;英文简写、条件码标志位及控制位的含义&#xff09; CPSR&#xff0c;N,Z,C,V(P26) 3 &a…...

卡洛诗已悄然改写高性价比西餐的竞争规则

在餐饮行业竞争日益激烈的今天&#xff0c;消费者对“高性价比”的定义已从单纯的低价转向品质、体验与情感价值的综合考量。萨莉亚原团队成员出来升级孵化的新概念中式西餐卡洛诗以“访九州异馔&#xff0c;再造东方味”为核心理念&#xff0c;通过本土化创新、严控文化及场景…...

独立开发者之网站的robots.txt文件如何生成和添加

robots.txt是一个存放在网站根目录下的文本文件&#xff0c;用于告诉搜索引擎爬虫哪些页面可以抓取&#xff0c;哪些页面不可以抓取。下面我将详细介绍如何生成和添加robots.txt文件。 什么是robots.txt文件&#xff1f; robots.txt是遵循"机器人排除协议"(Robots…...

02核心-EffectSpec,EffectContext

1.FGameplayEffectSpec 效果Spec 创建&#xff1a;MakeOutGoingSpec>EffectSpecHandle≈EffectSpec. 创建总结&#xff1a;EffectLevelEffectContext>EffectSpec(Handle) 数据&#xff1a;EffectSpec存有效果的等级&#xff0c;上下文&#xff0c;类。 还有很多其他东…...

驱动开发硬核特训 · Day 10(下篇):设备模型实战篇 —— Platform 驱动机制 ≈ 运行时适配器

&#x1f50d; B站相应的视屏教程&#xff1a; &#x1f4cc; 内核&#xff1a;博文视频 - 总线驱动模型实战全解析 敬请关注&#xff0c;记得标为原始粉丝。 &#x1f527; &#x1f4cd; 一、目标与回顾 在上篇《理论篇》中&#xff0c;我们从软件工程角度&#xff0c;解释…...

集合框架二三事

一.集合框架 Java集合框架&#xff08;Java Collections Framework&#xff09;是Java标准库中用于存储和处理对象集合的一组接口和实现类。它提供了一套统一的API&#xff0c;使得开发者能够高效地管理和操作数据集合。以下是关于Java集合框架的详细介绍&#xff0c;包括其核…...

前端jest(vitest)单元测试快速手上

前言 vitest和jest除了配置上不同&#xff0c;其他的基本差不多&#xff0c;这里以jest为例进行说明 安装依赖 npm install -D jest编写测试 例如&#xff0c;我们将编写一个简单的测试来验证将两个数字相加的函数的输出。 sum.js export function sum(a, b) {return a b…...

优化方法介绍(二)

优化方法介绍(二) 本博客是一个系列博客,主要是介绍各种优化方法,使用 matlab 实现,包括方法介绍,公式推导和优化过程可视化 1 BFGS 方法介绍 BFGS 的其实就是一种改良后的牛顿法,因为计算二阶导数 Hessian 矩阵所需的计算资源是比较大的,复杂度为 O ( 2 ⋅ n 2 ) …...

Sklearn入门之datasets的基本用法

、 Sklearn全称:Scipy-toolkit Learn是 一个基于scipy实现的的开源机器学习库。它提供了大量的算法和工具&#xff0c;用于数据挖掘和数据分析&#xff0c;包括分类、回归、聚类等多种任务。本文我将带你了解并入门Sklearn下的datasets在机器学习中的基本用法。 获取方式 pi…...

UDS协议 - 应用层服务测试用例概览

目录 前言一、10服务物理寻址测试功能寻址测试二、11服务物理寻址测试功能寻址测试三、14服务物理寻址测试功能寻址测试四、19服务物理寻址测试功能寻址测试五、22服务物理寻址测试功能寻址测试六、27服务物理寻址测试七、28服务物理寻址测试功能寻址测试八、2E服务物理寻址测试…...

记录一个虚拟机分配资源的问题

Virtualize Intel VT - x/EPT or AMD - V/RVI&#xff1a;若物理机的 CPU 支持对应的硬件虚拟化技术&#xff08;Intel VT - x 或 AMD - V&#xff09;&#xff0c;强烈建议开启。该功能可显著提升虚拟机的性能&#xff0c;让虚拟机更高效地利用物理 CPU 资源&#xff0c;改善卡…...

(即插即用模块-特征处理部分) 三十一、(2024) CDFA 对比度驱动的特征聚合模块

文章目录 1、Contrast-Driven Feature Aggregation module2、代码实现 paper&#xff1a;ConDSeg: A General Medical Image Segmentation Framework via Contrast-Driven Feature Enhancement Code&#xff1a;https://github.com/Mengqi-Lei/ConDSeg 1、Contrast-Driven Feat…...

机械革命 无界15X 自带的 有线网卡 YT6801 debian12下 的驱动方法

这网卡是国货啊。。。 而且人家发了驱动程序 Motorcomm Microelectronics. YT6801 Gigabit Ethernet Controller [1f0a:6801] 网卡YT6801在Linux环境中的安装方法 下载网址 yt6801-linux-driver-1.0.29.zip 我不知道别的系统是否按照说明安装就行了 但是debian12不行&…...

TypeScript 的 interface 接口

TypeScript 的 interface 接口 简介 interface 是对象的模板&#xff0c;可以看作是一种类型约定&#xff0c;中文译为“接口”。使用了某个模板的对象&#xff0c;就拥有了指定的类型结构。 interface Person {firstName: string;lastName: string;age: number;} 上面示例中…...

SpringBoot3-web开发笔记(下)

内容协商 实现&#xff1a;一套系统适配多端数据返回 多端内容适配&#xff1a; 1. 默认规则 SpringBoot 多端内容适配。 基于请求头内容协商&#xff1a;&#xff08;默认开启&#xff09; 客户端向服务端发送请求&#xff0c;携带HTTP标准的Accept请求头。 Accept: applica…...

关于无线网络安全的基础知识,涵盖常见威胁、防护措施和实用建议

无线网络(WiFi)的普及极大地方便了我们的生活,但其开放性也带来了诸多安全隐患。以下是关于无线网络安全的基础知识,涵盖常见威胁、防护措施和实用建议: 一、无线网络常见安全威胁 窃听(Eavesdropping) 攻击者通过监听无线信号,截获未加密的数据(如登录密码、聊天记录…...

《基于 RNN 的股票预测模型代码优化:从重塑到直接可视化》

在深度学习领域&#xff0c;使用循环神经网络&#xff08;RNN&#xff09;进行股票价格预测是一个常见且具有挑战性的任务。本文将围绕一段基于 RNN 的股票预测代码的改动前后差别展开&#xff0c;深入剖析代码的优化思路和效果。 原始代码思路与问题 原始代码实现了一个完整…...

【leetcode刷题日记】lc.347-前 K 个高频元素

目录 1.题目 2.代码 1.题目 给你一个整数数组 nums 和一个整数 k &#xff0c;请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 示例 1: 输入: nums [1,1,1,2,2,3], k 2 输出: [1,2]示例 2: 输入: nums [1], k 1 输出: [1] 提示&#xff1a; 1 <…...

进程I·介绍、查看、创建与状态

目录 介绍 PCB&#xff08;进程控制块&#xff09; task_struct 查看、创建进程 进程状态 小知识 介绍 进程&#xff1a;PCB&#xff08;process control block&#xff09;&#xff08;内核数据结构&#xff09; 代码和数据 进程创建&#xff1a;操作系统将其相关属性信…...

[k8s]随笔- spec内容整理

面对 Kubernetes 中 spec 字段的复杂性&#xff0c;关键在于建立 层次化的分类逻辑 和 功能导向的归纳方法。以下是具体的规整思路和实践步骤&#xff0c;帮助你理清脉络、高效使用&#xff1a; 一、按资源类型分层&#xff1a;先分“大类”&#xff0c;再钻“细节” K8s 资源…...

程序化广告行业(81/89):行业术语解析与日常交流词汇指南

程序化广告行业&#xff08;81/89&#xff09;&#xff1a;行业术语解析与日常交流词汇指南 在程序化广告这个不断发展的行业中&#xff0c;持续学习和知识共享是我们紧跟潮流、提升能力的关键。一直以来&#xff0c;我都希望能和大家一起探索这个领域&#xff0c;共同进步。今…...

层归一化(Layer Normalization) vs 批量归一化(Batch Normalization)

层归一化和批量归一化都是 归一化方法,目的是让训练更稳定、收敛更快,但应用场景和工作方式大不相同。 名称一句话解释BatchNorm对 同一通道、不同样本之间 做归一化,适合图像任务,依赖 Batch Size。LayerNorm对 每个样本自身所有特征维度 做归一化,适合序列任务,不依赖 …...

【杂谈】-开源 AI 的复兴:Llama 4 引领潮流

开源 AI 的复兴&#xff1a;Llama 4 引领潮流 文章目录 开源 AI 的复兴&#xff1a;Llama 4 引领潮流一、Llama 4&#xff1a;开源 AI 的挑战者二、真实利他还是战略布局&#xff1f;三、对开发者、企业和人工智能未来的启示 在过去的几年里&#xff0c;AI 领域发生了重大转变。…...

instructor 库实现缓存

目录 代码代码解释1. 基础设置2. 客户端初始化3. 数据模型定义4. 缓存设置5. 缓存装饰器6. 示例函数工作流程 示例类似例子 代码 import functools import inspect import instructor import diskcachefrom openai import OpenAI, AsyncOpenAI from pydantic import BaseModel…...

【日志链路】⭐️SpringBoot 整合 TraceId 日志链路追踪!

&#x1f4a5;&#x1f4a5;✈️✈️欢迎阅读本文章❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;本篇文章阅读大约耗时6分钟。 ⛳️motto&#xff1a;不积跬步、无以千里 &#x1f4cb;&#x1f4cb;&#x1f4cb;本文目录如下&#xff1a;&#x1f381;&#x1f381;&am…...

QT6 源(16):存储 QT 里元对象的类信息的类 QMetaClassInfo 的类,只有两个成员函数 name()、value(),比元对象属性简单多了

&#xff08;1&#xff09;所在头文件 qmetaobject.h &#xff1a; class Q_CORE_EXPORT QMetaClassInfo { private: //private 属性里包含了至关重要的数据成员的定义&#xff0c;放前面struct Data {enum { Size 2 };const uint * d; //包含了数组的起始地址uint name ()…...

deskflow使用教程:一个可以让两台电脑鼠标键盘截图剪贴板共同使用的开源项目

首先去开源网站下载&#xff1a;Release v1.21.2 deskflow/deskflow 两台电脑都要下载这个文件 下载好后直接打开找到你想要的exe desflow.exe 然后你打开他&#xff0c;将两台电脑的TLS都关掉 下面步骤两台电脑都要完成&#xff1a; 电脑点开edit-》preferences 把这个取…...

波束形成(BF)从算法仿真到工程源码实现-第六节-广义旁瓣消除算法(GSC)

一、概述 本节我们讨论广义旁瓣消除算法(GSC)&#xff0c;包括原理分析及代码实现。 更多资料和代码可以进入https://t.zsxq.com/qgmoN &#xff0c;同时欢迎大家提出宝贵的建议&#xff0c;以共同探讨学习。 二、原理分析 广义旁瓣消除(GSC)算法 GSC算法是与LCMV算法等效的&…...

企业数字化转型需要注重的深层维度:生成式AI时代的战略重构

企业数字化转型正在经历从"技术适配"到"基因重组"的质变。生成式AI技术的突破性发展,要求企业超越传统信息化框架,构建全新的数字化转型认知体系。本文将从战略认知、技术融合、组织进化、伦理治理、生态协作五个维度,系统解构企业数字化转型需注重的核…...

图论之并查集——含例题

目录 介绍 秩是什么 例子——快速入门 例题 使用路径压缩&#xff0c;不使用秩合并 使用路径压缩和秩合并 无向图和有向图 介绍 并查集是一种用于 处理不相交集合的合并与查询问题的数据结构。它主要涉及以下基本概念和操作&#xff1a; 基本概念&#xff1a; 集合&…...

解释型语言和编译型语言的区别

Python 的执行过程通常涉及字节码&#xff0c;而不是直接将代码编译为机器码。以下是详细的解释&#xff1a; ### **Python 的执行过程** 1. **源代码到字节码**&#xff1a; - Python 源代码&#xff08;.py 文件&#xff09;首先被编译为字节码&#xff08;.pyc 文件&…...