K8s数据存储之详解(Detailed Explanation of K8s Data Storage)
K8s数据存储相关概念详解(临时存储,节点存储,网络存储,PV/PVC)
本篇文章分享一下存储卷和数据持久化的相关概念:
-
存储卷概述
-
临时存储卷(
Ephemeral Volumes
) -
节点存储卷(
Node-local Volumes
) -
网络存储卷(
Network Volumes
) -
持久存储卷(
Persistent Volumes
) -
1. 存储卷概述
存储卷(Volume) 是一个抽象层,是定义在Pod资源之上,表示可以被容器挂载的存储资源。每个容器都可以通过卷来持久化或共享数据。存储卷的生命周期由 Pod 控制,Pod 被销毁时,相关的卷也会被销毁(除非是持久化存储卷)。
Kubernetes 中的存储卷有以下几个关键特性:
-
生命周期:与 Pod 生命周期相同。Pod 启动时,存储卷被挂载到容器中,Pod 销毁时,存储卷也随之销毁(但对于持久化存储卷,存储内容会被保留)。
-
数据共享:多个容器可以挂载同一个存储卷,从而实现数据共享和互操作。
-
支持多种存储后端:Kubernetes 支持多种存储类型,包括本地磁盘、NFS、云存储、分布式存储等。
存储卷类型:
-
临时存储卷
-
节点存储卷
-
网络存储卷
-
持久存储卷
2. 临时存储卷
临时存储卷是与 Pod 生命周期紧密绑定的,它们在 Pod 启动时创建,并在 Pod 被销毁时删除。临时存储卷适用于容器运行时的短期数据存储需求。例如,容器内部的缓存数据或其他不需要持久化的数据。
常见的临时存储卷:
-
emptyDir:在 Pod 启动时创建,Pod 被删除时删除,适合用于容器间的临时数据交换。例如,可以用它来在多个容器之间共享数据。
-
configMap:用于存储配置文件,将配置数据挂载为文件供容器访问。可以动态更新配置。
-
secret:用于存储敏感数据(如密码、API 密钥等),并提供加密存储和访问的能力。
-
downwardAPI:允许容器访问有关 Pod 和容器的元数据,如 Pod 名称、Pod IP 等信息。
emptyDir:配置参考
apiVersion: v1
kind: Pod
metadata:name: emptydir-example
spec:containers:- name: nginximage: nginxvolumeMounts: - mountPath: /dataname: data-volumevolumes:- name: data-volumeemptyDir: {}
特点:
-
数据会在 Pod 销毁时丢失。
-
不具有持久化能力,不适用于需要持久化数据的应用场景。
3. 节点存储卷
hostPath类型的存储卷是指与某个节点直接关联的存储资源,通常用于存储与特定节点相关的数据。。它们的生命周期依赖于节点,Pod 可以使用节点存储卷进行高效的本地存储。
hostPath存储卷将主机文件系统上的某个目录挂载到 Pod 中,可以使用本地节点的磁盘资源。这种类型的存储卷适用于测试环境、存储日志文件或共享存储等。
hostPath卷:配置参考
apiVersion: v1
kind: Pod
metadata:name: hostpath-example
spec:containers:- name: nginximage: nginxvolumeMounts: # 定义存储卷挂载列表- mountPath: /var/log # 容器的挂载目录name: varlogreadOnly: true # 可选字段,默认falsevolumes: # 定义存储卷列表- name: varloghostPath:path: /var/log # 主机上目录位置type: Directory # 此字段可选
常见的hostPath卷类型type
类型 | 说明 |
---|---|
"" | 空字符串(默认)用于向后兼容,这意味着在安装 hostPath 卷之前不会执行任何检查。 |
DirectoryOrCreate | 路径上什么都不存在,那么将根据需要创建空目录,权限设置为 0755 |
Directory | 路径上必须存在的目录 |
FileOrCreate | 路径上什么都不存在,那么将在那里根据需要创建空文件,权限设置为 0644 |
File | 路径上必须存在的文件 |
特点:
-
具有持久化能力,但仅限固定节点。
-
适合需要在特定节点上存储数据的场景,daemonset控制器。
-
存储卷只能在节点本地使用,无法跨节点共享(缺点)。
-
hostPath 卷的使用需要谨慎,因为它会与节点的文件系统直接交互,可能引发数据一致性和安全性问题。
4. 网络存储卷
网络存储卷是指通过网络协议将远程存储系统挂载到 Kubernetes 集群中的存储卷。它们适用于跨节点共享数据的场景,通常需要支持多 Pod 或多节点的并发访问。
常见的网络存储卷类型:
-
NFS(Network File System):通过 NFS 协议共享文件系统,多个 Pod 可以共享同一个存储卷,适用于文件存储、共享文件等场景。
-
GlusterFS:一个开源的分布式文件系统,支持高可用性和横向扩展,适用于大规模的文件存储。
-
CephFS:Ceph 的分布式文件系统,支持高可用、高性能和数据冗余,适合大规模存储系统。
温馨提示:
-
GlusterFS在v1.25 版本中被弃用,然后在 v1.26 版本中被完全移除。
-
Ceph RBD在v1.28 版本中被弃用,并在 v1.31 版本中被完全移除。
-
NFS存储仍然支持,后期可能进入大量支持云存储阶段
4.1 NFS卷:配置参考
前提:有可用的NFS服务器并配置相应的挂载目录。
apiVersion: v1
kind: Pod
metadata:name: nfs-pod
spec:containers:- name: redisimage: redisvolumeMounts:- mountPath: /data # 挂载到容器的路径name: nfs-volumevolumes:- name: nfs-volumenfs:server: <nfs-server-ip> # NFS服务器IPpath: /data/redis # nfs服务器的共享路径readOnly: true # 可选,默认为false
4.2 RBD存储卷:配置参考
前提:在Kubernetes集群外存在一个Cepht RBD存储集群,网络与集群互通。
apiVersion v1
kind: Pod
metadata:name: rbd-pod
spec:containers:- name: redisimage: redisports:- containerPort: 6379name: redisportvolumeMounts:- mountPath: /dataname: reids-rdb-volvolumes:- name: redis-rbd-volrbd:monitors:- '10.0.0.105':6789- '10.0.0.106':6789- '10.0.0.107':6789pool: k8s-rbdimage: redisfsType: xfsreadOnly: falseuser: adminsecretRef:name: ceph-secret
字段说明:
-
monitors:Ceph 存储监视器
-
image: rados image 的名称
-
pool: rados 存储名称,默认为 RBD。
-
user: rados 用户名,默认为 admin。
-
secretRef:RBD 用户认证时使用的保存有相应认证信息的 Secret 对象
-
readOnly:是否以只读的方式进行访问,默认为false。
-
fsType:要挂载的存储卷的文件系统类型,如 ext4、xfs、ntfs 等,默认为 ext4。
网络存储卷特点:
-
支持跨节点的文件共享。
-
适用于多容器共享数据的场景。
-
性能可能受到网络带宽和延迟的影响。
5. 持久存储卷
持久存储卷(Persistent Volumes,简称 PV)与普通的临时存储卷不同,PV 设计用于持久化存储,在 Pod 的生命周期之外仍然存在,适用于需要长期存储的数据,如数据库、日志文件、缓存、重要的配置文件等。
持久化存储卷(PV)有两种形式:
-
静态 PV:管理员手动预先创建并配置 PV,它绑定到一个具体的存储资源(如 NFS、iSCSI、云存储等)。PV 的生命周期与 Pod 无关,即便 Pod 被销毁,PV 中的数据仍然保留。PV 的生命周期与 Pod 无关,即便 Pod 被销毁,PV 中的数据仍然保留。
-
动态 PV:通过 StorageClass 进行动态创建。管理员通过 StorageClass 定义存储的类型和参数,Kubernetes 会根据 PVC 请求动态创建相应的 PV。
5.1. PV 和 PVC 的关系
PV和PVC通过声明式的方式实现存储的管理:
-
PV:集群层面资源,不受namespace限制。通常与物理存储或云存储后端绑定。每个 PV 定义了存储容量、访问模式、存储类型(如 NFS、Ceph、EBS)等属性。
-
PVC:是对 PV 的请求。PVC 声明了存储需求(例如容量、访问模式等),Kubernetes 会根据 PVC 来匹配并绑定到合适的 PV。
用户通过 PVC 请求存储,Kubernetes 会自动将 PVC 和 PV 绑定。PVC 提供了对存储资源的抽象,应用程序无需关心具体的存储实现。
PV配置参考:
apiVersion: v1
kind: PersistentVolume
metadata:name: nfs-pv
spec:capacity:storage: 10GivolumeMode: FilesystemaccessModes:- ReadWriteManypersistentVolumeReclaimPolicy: RetainstorageClassName: nfs-storage-classnfs:path: /data/nfsserver: <nfs-server-ip>
PVC配置参考:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: nfs-pvc
spec:accessModes:- ReadWriteManyresources:requests:storage: 10GistorageClassName: nfs-storage-class
5.2. PV/PVC的生命周期
其实PV 的生命周期和 PVC 的生命周期是分开的,PV 的生命周期与 Pod 无关,即便 Pod 被销毁,PV 中的数据仍然保留。
PV和PVC的整体的生命周期:
5.2.1. PV 的生命周期
创建完成的PV资源可能处于下面四种状态的其中一种,代表着PV资源生命周期的各个阶段
-
可用状态(Available):当 PV 被创建时,它处于
Available
状态。此时,PV 可以绑定到 PVC。 -
已绑定状态(Bound):当 PVC 与 PV 绑定时,PV 会进入
Bound
状态。此时,PVC 和 PV 之间存在绑定关系,存储已经被分配给 Pod。 -
回收状态(Released):当 PVC 被删除时,PV 进入
Released
状态,但存储本身仍然存在,资源尚未被集群回收。 -
失败(Falied):因自动回收资源失败而处于的故障状态,此时,PV不可用
5.2.2. PVC 的生命周期
-
Pending 状态:PVC 创建后处于
Pending
状态,表示系统正在寻找合适的 PV 来满足 PVC 的请求。 -
Bound 状态:当 PVC 与 PV 成功绑定后,PVC 会进入
Bound
状态,表示存储已经分配给 PVC。 -
Deleted 状态:当 PVC 被删除时,绑定的 PV 进入
Released
状态,存储资源的回收与否取决于 PV 的ReclaimPolicy
。
5.2.3. 回收策略
ReclaimPolicy 决定了当 PVC 删除时,PV 的处理方式。常见的回收策略有:
-
Retain:保留 PV,存储资源不会被删除,数据仍然保留,需要管理员手动清理。
-
Delete:删除 PV,相关的存储资源会被删除
-
Recycle:将 PV 中的数据清除(已废弃,不推荐使用)。
5.3. PV 的访问模式
-
ReadWriteOnce (RWO)
:PV 可以被单个节点的一个 Pod 以读写模式访问。 -
ReadOnlyMany (ROX)
:多个 Pod 可以以只读模式同时访问 PV。通常用于只读文件共享存储。 -
ReadWriteMany (RWX)
:多个 Pod 可以以读写模式同时访问 PV。通常用于支持并发读写的网络文件系统(如 NFS、GlusterFS、CephFS)等存储后端。
5.4. 动态存储卷
动态存储卷 是通过 StorageClass 结合 PVC 实现的。
当用户创建 PVC 时,Kubernetes 根据指定的 StorageClass 动态创建相应的 PV,而无需管理员手动创建 PV。
动态存储卷使得存储管理更加灵活和自动化。
StorageClass配置参考:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: fast-storage
provisioner: kubernetes.io/aws-ebs
parameters:type: gp2fsType: ext4
StorageClass 参数解释:
-
provisioner:指定存储后端供应器。
-
parameters:可以定义与存储类型相关的参数,
总结:持久化存储特点:
-
数据在 Pod 销毁时依然存在,数据能够跨 Pod 和节点持久化。。
-
支持多种存储后端,包括云存储、本地存储和分布式文件系统。
-
提供高可用性和冗余机制,保证数据的持久性和容错能力。
-
易于备份、恢复和扩展,支持弹性和跨平台迁移。
相关文章:
K8s数据存储之详解(Detailed Explanation of K8s Data Storage)
K8s数据存储相关概念详解(临时存储,节点存储,网络存储,PV/PVC) 本篇文章分享一下存储卷和数据持久化的相关概念: 存储卷概述 临时存储卷(Ephemeral Volumes) 节点存储卷ÿ…...
PyTorch 中的 Dropout 解析
文章目录 一、Dropout 的核心作用数值示例:置零与缩放**训练阶段****推理阶段** 二、Dropout 的最佳使用位置与具体实例解析1. 放在全连接层后2. 卷积层后的使用考量3. BatchNorm 层与 Dropout 的关系4. Transformer 中的 Dropout 应用 三、如何确定 Dropout 的位置…...
计算机网络 (41)文件传送协议
前言 一、文件传送协议(FTP) 概述: FTP(File Transfer Protocol)是互联网上使用得最广泛的文件传送协议。FTP提供交互式的访问,允许客户指明文件的类型与格式(如指明是否使用ASCII码࿰…...
AOSP 14及以上userdebug无法调试的问题
参考链接:原文...
【Vue】点击侧边导航栏,右侧main对应显示
需求:点击侧边导航栏,右侧main对应显示 通过v-if或v-show等指令来控制不同内容的显示隐藏来实现 注意: 使用v-if时候进行导航栏切换,右侧显示区域可能会出现样式错乱;使用v-show则不会出现此错误 <template>&…...
Python Selenium 库学习指南
Python Selenium 库学习指南 目录 Selenium 基础介绍 Selenium 是什么安装 SeleniumSelenium 的工作原理 Selenium 基本用法 启动浏览器定位元素常见操作:点击、输入、滚动 高级用法 切换窗口与标签页模拟鼠标操作与键盘输入动态加载的网页处理 等待机制 显式等待…...
如何解决Webview和H5缓存问题,确保每次加载最新版本的资源
WebView 用于加载 H5 页面是常见的做法,它能够加载远程的 HTML、CSS、JavaScript 资源,并且让 Web 应用嵌入到原生 App 中。然而,WebView 的缓存机制有时会导致用户看到的是旧版本的页面或资源,尤其是在 H5 发版后,iOS…...
costmap 中点与多边形的相对位置关系
一、背景 近期在阅读move_base源码costmap部分(感觉想玩转movebase导航,costmap必须理解呀)。读到两处点与多边形的相对位置关系。在此总结一下,分别是: intersects: 利用待测点向右引出的射线与多边形的交点数来确定相对位置。有的称 射线交叉算法&am…...
C#与Vue2上传下载Excel文件
1、上传文件流程:先上传文件,上传成功,返回文件名与url,然后再次发起请求保存文件名和url到数据库 前端Vue2代码: 使用element的el-upload组件,action值为后端接收文件接口,headers携带session信…...
.NetCore 使用 NPOI 读取带有图片的excel数据
在.NetCore使用NPOI插件进行批量导入时,获取Excel中的所有的图片数据,存到集合中。 1.定义类PictureData 代码如下: public class PictureData { public byte[] Data { get; set; } } 2.数据集引用 using NPOI.XSSF.UserModel; usin…...
鸿蒙打包发布
HarmonyOS应用/元服务发布(打包发布) https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/ide-publish-app-V13?catalogVersionV13 密钥:包含非对称加密中使用的公钥和私钥,存储在密钥库文件中,格式…...
C++并发编程之跨应用程序与驱动程序的单生产者单消费者队列
设计一个单生产者单消费者队列(SPSC队列),不使用C STL库或操作系统原子操作函数,并且将其放入跨进程共享内存中以便在Ring3(用户模式)和Ring0(内核模式)之间传递数据,是一…...
22、PyTorch nn.Conv2d卷积网络使用教程
文章目录 1. 卷积2. python 代码3. notes 1. 卷积 输入A张量为: A [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ] \begin{equation} A\begin{bmatrix} 0&1&2&3\\\\ 4&5&6&7\\\\ 8&9&10&11\\\\ 12&13&14&15 \end{b…...
智汇云舟参编《城市轨道交通安全防范系统技术要求》国标正式发布
近日,根据国家标准化管理委员会官网,全国标准信息公共服务平台发布的公告,国家标准《城市轨道交通安全防范系统技术要求》(GB/T 26718-2024)已由全国城市轨道交通标准化技术委员会上报国家标准化管理委员会,…...
C# 数据拟合教程:使用 Math.NET Numerics 的简单实现
C# 数据拟合实战:使用 Math.NET Numerics 快速实现 引言 在科学计算、工程建模或数据分析中,数据拟合是一个非常重要的技术。无论是线性拟合还是非线性拟合,借助适当的工具都可以快速解决问题。本文将向您展示如何使用 C# 和强大的数值计算…...
WEB攻防-通用漏洞_XSS跨站_权限维持_捆绑钓鱼_浏览器漏洞
目录 XSS的分类 XSS跨站-后台植入Cookie&表单劫持 【例1】:利用beef或xss平台实时监控Cookie等凭据实现权限维持 【例2】:XSS-Flash钓鱼配合MSF捆绑上线 【例3】:XSS-浏览器网马配合MSF访问上线 XSS的分类 反射型(非持久…...
瑞芯微 RK 系列 RK3588 使用 ffmpeg-rockchip 实现 MPP 视频硬件编解码-代码版
前言 在上一篇文章中,我们讲解了如何使用 ffmpeg-rockchip 通过命令来实现 MPP 视频硬件编解码和 RGA 硬件图形加速,在这篇文章,我将讲解如何使用 ffmpeg-rockchip 用户空间库(代码)实现 MPP 硬件编解码。 本文不仅适…...
MySQL数据库(SQL分类)
SQL分类 分类全称解释DDLData Definition Language数据定义语言,用来定义数据库对象(数据库,表,字段)DMLData Manipulation Language数据操作语言,用来对数据库表中的数据进行增删改DQLData Query Languag…...
SpringBoot-Day1
1.Springboot入门 创建Maven工程 导入spring-boot-stater-web起步依赖 编写Controller 提供启动类 2.yml配置信息书写与获取 书写 # 发件人信息 email:user: 172349823457qq.comcode: sajdajlwhjfgfkllwhost: smtp.qq.comauth: true # 学生爱好 hobbies:- 打篮球- 踢…...
【JavaScript】基础内容,HTML如何引用JavaScript, JS 常用的数据类型
HTML 嵌入 Javascript 的方式 引入外部 js 文件 <head> <script Language "javaScript" src"index.js"/> </head>内部声明 <head> <script language"javascript">function hello(){alert("hello word&qu…...
mysql中创建计算字段
目录 1、计算字段 2、拼接字段 3、去除空格和使用别名 (1)去除空格 (2)使用别名:AS 4、执行算术计算 5、小结 博主用的是mysql8 DBMS,附上示例资料: 百度网盘链接: https://pan.baidu.co…...
如何优化zibll子比主题SEO并设置有效robots文件
如果你不知道 robots.txt 是什么,也不确定如何正确地设置它,本篇文章会向您介绍适用于子比主题的 robots.txt 文件,利用它可以提升 SEO 的效果,避免收录无关页面,从而解决网站被收录但无权重的困境。 作为一款高效的 …...
线程间通信
线程间通信(Inter-Thread Communication, 简称ITC)是指在多线程编程中,不同线程之间如何交换信息或协调彼此的行为。良好的线程间通信机制是构建高效、可靠的并发程序的关键。Java语言提供了多种内置工具和库来支持线程间的通信,包…...
【实践】操作系统智能助手OS Copilot新功能测评
一、引言 数字化加速发展,尤其人工智能的发展速度越来越快。操作系统智能助手成为提升用户体验与操作效率的关键因素。OS Copilot借助语言模型,人工智能等,对操作系统的自然语言交互操作 推出很多功能,值得开发,尤其运…...
今年的电商年货节,主流的营销策略是怎样?
随着一年的年关将近,新一年的CNY营销也逐渐拉开帷幕。考虑到此时消费需求的膨胀,这个时间不论对于线上还是线下市场而言,都是重要的营销节点。今年CNY营销,电商平台上的主流营销策略是这样?就让我们来简单了解下概况。…...
Java设计模式——单例模式(特性、各种实现、懒汉式、饿汉式、内部类实现、枚举方式、双重校验+锁)
文章目录 单例模式1️⃣特性💪单例模式的类型与实现:类型懒汉式实现(线程不安全)懒汉式实现(线程安全)双重锁校验懒汉式(线程安全)饿汉式实现(线程安全)使用类的内部类实现⭐枚举方式实现单例(推荐)👍 单例…...
基于 Python 的学生成绩管理系统设计与实现
标题:基于 Python 的学生成绩管理系统设计与实现 内容:1.摘要 摘要:本文介绍了一个基于 Python 的学生成绩管理系统的设计与实现。该系统旨在提高学生成绩管理的效率和准确性,方便教师和学生进行成绩查询和分析。本文详细描述了系统的设计思路、功能模块…...
局域网共享文件夹实现两台Windows电脑之间传输文件
文章目录 1. 启用网络发现和文件共享2. 设置共享文件夹3. 记录主电脑的IP地址4. 在第二台电脑访问共享文件夹5. 故障排查6. 启用文件共享未生效方案1:检查服务状态方案2:检查防火墙设置方案3:检查网络类型方案4:使用“管理员命令提…...
JS的事件循环机制
<script>setTimeout(()>{console.log(1)},1000)setTimeout(()>{console.log(2)},3000)var start Date.now();while ( (Date.now() - start) < 10000 ){}console.log(3)</script>执行如下代码会发现先打印3,再打印1 再打印2。 现象本质还是因为…...
《自动驾驶与机器人中的SLAM技术》ch9:自动驾驶车辆的离线地图构建
目录 1 点云建图的流程 2 前端实现 2.1 前端流程 2.2 前端结果 3 后端位姿图优化与异常值剔除 3.1 两阶段优化流程 3.2 优化结果 ① 第一阶段优化结果 ② 第二阶段优化结果 4 回环检测 4.1 回环检测流程 ① 遍历第一阶段优化轨迹中的关键帧。 ② 并发计算候选回环对…...
环境搭建——Mysql、Redis、Rocket MQ部署
前言 在搭建分布式系统时,MySQL、Redis 和 RocketMQ 是常用的基础服务。每个服务各自的功能不同,但它们在数据存储、缓存、消息队列等方面不可或缺。如果你是初学者,别担心,本文会一步步详细教你如何在服务器上通过 Docker 部署这…...
Pycharm连接远程解释器
这里写目录标题 0 前言1 给项目添加解释器2 通过SSH连接3 找到远程服务器的torch环境所对应的python路径,并设置同步映射(1)配置服务器的系统环境(2)配置服务器的conda环境 4 进入到程序入口(main.py&#…...
git的基本操作
创建分支: 1,拉去develop代码; 2,git checkout develop切换到develop; 3,git branch lyb/lyb_develop ; 4,git push --set-upstream origin lyb/lyb_develop 切换分支,上…...
Linux软件包管理工具概览
目录 RPM(RedHat Package Manager) DPKG(Debian Packager) APT(Advanced Package Tool) YUM(Yellowdog Updater, Modified) DNF(Dandified YUM) 总结 在…...
unity学习16:unity里向量的计算,一些方法等
目录 1 unity里的向量: 2 向量加法 2.1 向量加法的几何意义 2.2向量加法的标量算法 3 向量减法 3.1 向量减法的几何意义 3.2 向量减法的标量算法 4 向量的标量乘法 5 向量之间的乘法要注意是左乘 还是右乘 5.1 注意区别 5.2 向量,矩阵&#x…...
HTML拖拽功能(纯html5+JS实现)
1、HTML拖拽--单元行拖动 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><…...
w158医院资源管理系统的设计与实现
🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹赠送计算机毕业设计600个选题excel文…...
【计算机网络】lab3 802.11 (无线网络帧)
🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀计算机网络_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言 2.…...
linux进程
课本概念:程序的⼀个执行实例,正在执行的程序等内核观点:担当分配系统资源(CPU时间,内存)的实体。 进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合.课本上称之为PCB&…...
pytest-allure框架简单封装----测试报告
安装allure-commandline---可以支持allure命令 把对应的压缩包解压后,把xxx/bin配置到环境变量的path去 可以输入allure -version检查版本 pip install allure-pytest2.11.1 生成测试报告 import pytest pytest_args ["-s","-v","--capturesys…...
【2025最新计算机毕业设计】基于SpringBoot+Vue奶茶点单系统(高质量源码,提供文档,免费部署到本地)
作者简介:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容:🌟Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…...
HTML中最基本的东西
本文内容的标签,将是看懂HTML的最基本之基本 ,是跟您在写文章时候一样内容。一般想掌握极其容易,但是也要懂得如何使用,过目不忘,为手熟尔。才是我们学习的最终目的。其实边看边敲都行,或者是边看边复制粘贴…...
Open FPV VTX开源之ardupilot配置
Open FPV VTX开源之ardupilot配置 1. 源由2. 配置3. 总结4. 参考资料5. 补充5.1 飞控固件版本5.2 配置Ardupilot的BF OSD5.3 OSD偏左问题 1. 源由 飞控嵌入式OSD - ardupilot配置使用ardupliot配套OSD图片。 Choose correct font depending on Flight Controller SW. ──>…...
基于OQuPy的量子编程实例探究:理论、实践与展望
基于OQuPy的量子编程探究:理论、分析与实践 一、引言 1.1 研究背景与意义 近年来,量子计算作为一种革命性的计算范式,在科学界与产业界引发了广泛关注。它依托量子力学原理,运用量子比特(qubit)进行信息处理,与传统计算相比,具备并行处理、指数级加速等显著优势,为解…...
深入理解 ECMAScript 2024 新特性:正则表达式 /v 标志
ECMAScript 2024 (ES15)标准引入了新的正则表达式标志 /v,这一新增功能不仅优化了多行匹配的处理,还增加了对特殊字符匹配的支持。这一变革对于需要处理复杂文本数据的应用场景尤为重要,比如日志分析、代码审核等。接下…...
iOS 逆向学习 - Inter-Process Communication:进程间通信
iOS 逆向学习 - Inter-Process Communication:进程间通信 一、进程间通信概要二、iOS 进程间通信机制详解1. URL Schemes2. Pasteboard3. App Groups 和 Shared Containers4. XPC Services 三、不同进程间通信机制的差异四、总结 一、进程间通信概要 进程间通信&am…...
Prompt工程框架介绍与场景选择
文章目录 Prompt工程框架介绍1. CREATE框架2. RACE框架3. RISE框架4. ROSES框架5. E.R.A框架6. SAGE框架7. CARE框架8. PEAR框架9. TIER框架10. LEAP框架11. DEEP框架12. WISE框架13. FOCUS框架14. CLEAR框架15. SMART框架16. CLEAR框架17. LEAN框架18. BRIEF框架19. FAST框架2…...
信号量机制之苹果-橘子问题
桌上有一空盘,允许存放一种水果。爸爸可向盘中放苹果,也可向盘中放橘子,儿子专等吃盘中的橘子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一个水果供吃者取用。 要求:请用信号量机制实现爸爸、儿子、女儿三个并发…...
工业路由器和工业交换机,如何打造高效稳定的工业网络?
工业路由器和工业交换机各有千秋,但如何将它们完美结合,构建稳定高效的工业网络?答案就在这里! 工业物联网(IIoT)是高效、稳定的工业网络成为智慧工厂、工业自动化和远程监控等场景的基础支撑。工业路由器…...
【IDEA 2024】学习笔记--文件选项卡
在我们项目的开发过程中,由于项目涉及的类过多,以至于我们会打开很多的窗口。使用IDEA默认的配置,个人觉得十分不便。 目录 一、设置多个文件选项卡按照文件字母顺序排列 二、设置多个文件选项卡分行显示 一、设置多个文件选项卡按照文件字…...