云计算基础-存储基础
存储概念
什么是存储:
存储就是根据不同的应用程序环境,通过采取合理、安全、有效的方式将数据保存到某些介质上,并能保证有效的访问,存储的本质是记录信息的载体。
存储的特性:
- 数据临时或长期驻留的物理介质
- 需要保证数据能够及时的被读取或者保存
- 需要保证数据完整安全有效
什么是文件系统:
文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。
在文件系统中,我们可以看到文件的类型、文件的大小、创建时间等,这些都是文件系统中的信息
存储系统只有底层硬件和上层文件系统配合工作才能够真正的完成对于数据的读写管理,底层硬件只负责对0101这些二进制的读写,真正的帮助用户清晰简洁管理数据的其实是上层的文件系统,而用户直接对接的其实也是文件系统
存储系统的分类(存储的构建方式)
从存储的连接或者构建的方式来看,存储主要分为三种
- DAS:直连附属存储
- NAS:网络附属存储
- SAN:存储区域网络
DAS(Direct Attached Storage):
主机设备或者计算设备直接通过物理口和线缆连接的存储磁盘,从而获得存储资源,如个人电脑装的硬盘就可以看作是DAS存储
优点:简单
缺点:独立的数据存储模式,不能共享访问,可扩展性有限
NAS(Network Attached Storage):
支持联网的存储,不同主机可以通过网络向存储中上传、下载自己的文件,Windows的文件共享就是NAS存储的范畴。NAS存储提供的存储自带文件系统,NAS存储具有以下特点:
- 主机访问存储必须通过LAN共享
- 提供的存储已经指定了对应的文件系统
- 提供网络文件共享功能
- 支持的协议包括CIFS、NFS
优点:可实现跨平台的数据共享
缺点:应用有局限,比如无法在NAS存储上安装操作系统
SAN(Storage Area Network):
SAN是一种独立于服务器的存储网络,它通过高速连接将存储设备(如磁盘阵列、磁带库等)与多台服务器连接起来,形成一个高性能、高可用性的存储环境。
通过网络将服务器和存储连接起来,这个网络可以是FC网络,也可以是IP网络,这个取决于服务器跟磁针之间是 通过什么样的存储协议通信,SAN存储提供的存储不自带文件系统,它只负责数据的IO读写
优点:可靠性高,可扩展性强
缺点:成本高,维护有难度
SAN存储分类:
SAN存储主要包括两种网络架构的SAN,一种是基于IP网络的IP SAN,另一种是基于FC网络的FC SAN
IP SAN
IP SAN网络它是通过ISCSI协议连接服务器和磁针的,主机和存储之间走还是传统的IP网络
主机端:额外的网卡接口和客户端(OS一般自带)
网络:线速以太网交换机(传统的交换机)
存储端:具备ISCSI的接口
优点:利旧,扩展性好,可以充分利用现网的IT系统硬件,成本比较低
缺点:开销大、可靠性相比FC差,存储协议本身走的是SCSI协议(硬盘接口协议就是SCSI协议),为了兼容IP网络,提出ISCSI协议,但是ISCSI协议开销比较大。其性能略低
FC SAN
FC SAN网络是基于FC协议的,在服务器端需要有专门的FC HBA卡,因为主机和存储之间走的是FC协议,传统的交换机走的是IP网络,所以FC SAN存储中,网络也需要专门的FC交换机,存储也需要具备FC接口
主机端:FC HBA卡
网络:FC交换机
存储端:具备FC接口
优点:可靠性高,性能比IP SAN好
缺点:需要FC网络,扩展性差,成本高
存储连接架构总结
存储的服务类型
块存储
块存储,有时也被称为"块级存储",是一种主要用于在存储区域网络 (SAN) 或云环境中存储数据的技术。它的特性是将裸磁盘空间整个映射给主机使用,包括真实的物理磁盘或者通过RAID、逻辑卷等方式二次划分的逻辑磁盘。主机的操作系统可以识别这些硬盘,并进行分区和格式化操作,使其与服务器内置硬盘的功能并无二致。
文件存储
文件存储,也被称为文件级存储或基于文件的存储,是一种在计算机硬盘驱动器或网络连接存储 (NAS) 设备上组织和存储数据的方法。这种存储方式将数据以文件的形式进行保存,并进一步将文件按照文件夹进行分类,再将文件夹以目录和子目录的形式进行组织,形成一个层次化的存储结构。
对象存储
对象存储是一种基于分布式系统的数据存储服务,其以非结构化格式(称为对象)来存储和管理数据。它将数据存储为对象而不是文件,具有高度可靠性、高扩展性和高性能等优点。
存储服务类型 | 优点 | 缺点 | 应用场景 |
块级存储服务 | 如:前面提到的SAN , DAS,为主机提供的都是块存储,提供高性能的随机I/O和数据吞吐率,延迟低 | 可扩展性和可管理性较差 | 为一些高性能,高IO的企业关键业务系统(如企业内部数据库)提供存储。 |
文件级存储服务 | 如:NAS,扩展性好、易于管理、价格相对经济 | 开销高、延迟大,不适合高性能的存储场景 | 共享文件数据:FTP、家庭NAS存储、医院PACS医疗影像数据 |
对象存储服务 | 支持高并行性、可伸缩的数据访问, 管理性好、安全性高、适合大容量存储需求 | 时延长、不适合频繁更改的数据。 | 相对静态的文件数据,如备份、档案、视频和音频文件 |
存储的重要特性及相关技术名词
RAID
RAID:独立磁盘冗余阵列,将多个独立的磁盘整合成为一个RAID组,用来提升磁盘的读写能力
实现RAID功能的部件:服务器有一块单独的RAID卡,存储设备上有相应的RAID控制器
- 解决了单个磁盘容量的限制
- 解决了单个磁盘速度的限制
- 解决了数据可靠性问题
RAID级别:
RADI0:
无冗余的条带化
最少需要1块硬盘,可用容量为所有硬盘加起来的总和
优点:读写性能最高
缺点:不提供冗余,其中某一块硬盘损坏,所有数据全部丢失
RAID0写入:例如条带化大小为64K,若要写1024K文件,文件将会被分为16个小块,同时往RAID0内的磁盘写
RAID读取:假设RAID0由5块物理硬盘组成,读取时则从5个硬盘中同时读取
RAID1:镜像卷
所需物理硬盘数量为N*2,可用容量为50%
优点:允许损坏一块硬盘,提供冗余
缺点:数据写入时,最大只能达到单块磁盘的最大写性能,理论上来说,由于会同时向两块硬盘中同时写入,写性能会有所下降
优点:数据读取时,可以从两块硬盘中同时读取,读性能有所提高
读写:RAID1在写入时会同时向两块硬盘中写入同样的数据,同样,删除时,会同时在两块硬盘中同步删除
如果使用4块盘做RAID1会怎样:系统会自动创建两组RAID1,6块会创建三组.....
如下图。RAID0是将一个文件分成多份,同时往两块硬盘中写,写入性能更高,但无冗余,两块盘只要坏一块数据就丢失了
RAID1是同样一份文件会写两份,写性能会有所下降,但同样的数据会在RAID1组内的两块磁盘内各存一份,所以坏一块硬盘不会导致数据丢失,但开销太大,RAID总容量只要两块磁盘容量之和的1/2
RAID3:带奇偶校验的条带化(已被raid5取代)
RAID3会有专门的一块盘存放奇偶校验数据,RAID5的奇偶校验数据会平均分布存放在RAID5的所有硬盘上,RAID3如果进行数据重构的话,由于奇偶校验数据全部是存放在一块硬盘中的,进行数据重构的时候,奇偶校验盘会成为瓶颈,所以为了解决这个问题,出现了RAID5
RAID5:带奇偶校验的条带化
所需物理硬盘数量>=3,可用容量为N-1
优点:即解决了性能的问题,又解决了冗余的问题
缺点:假设RAID5其中某一块硬盘损坏,换上新硬盘后数据需要重构(重构:根据现有数据和奇偶值算出这块硬盘中的数据),1TB的数据重构时间大约需要10小时,如果重构的过程中会有业务数据写入,重构校验会暂停(业务优先级高于重构优先级)
RAID6
所需物理硬盘数量>=4,可用容量为N-2
RAID6每一个条带有两个校验,即:D1\D2校验为P1,D1\D2\P1校验为P2
RAID10
所需物理硬盘数量>=4,硬盘数量必须为2的倍数,可用容量为50%
先两块磁盘做RAID1,再将两组RAID1做RAID0
优点:可以同时坏两块盘,但是损坏的硬盘不能同时在一个RAID组内
热备盘
在创建RAID时就可以选择热备盘
Hot-Spare盘是一个不参与盘阵,但是加电上线的盘,当冗余阵列其中某一块硬盘损坏时,热备盘马上顶上,可以理解为自动换盘的概念,当损坏的硬盘换上新硬盘之后,热备盘马上又会变成热备盘的角色
RAID选择
RAID5更适合顺序大IO场景:视频场景、备份场景,一次写入,很少更改的场景
RAID10更适合随机小IO场景:数据库场景
为什么RAID5不适合随机小IO场景
因为数据库删改频繁,每一次修改数据都需要重新进行奇偶校验,会造成更多的写惩罚,从而降低存储性能
写惩罚:一次写,带来了更多额外的读操作
如果修改的数据,小于整个阵列的一半,比如10块盘,只修改了其中某一块或几块(5块以下,不包含5块)硬盘的数据(条带中的某一个或小于5个数据块),只需要将这个新写入的数据和已有的奇偶校验数据一起读出来,经过奇偶校验再写回去,但如果修改的数据超过一半,需要将这个条带中全部的数据读出来,经过奇偶校验再写回去
为什么RAID10适合随机小IO场景
RAID10不需要奇偶校验,就像直接往硬盘中写入数据即可,没有写惩罚
为什么RAID10不适合顺序大IO场景
在RAID10中,由于数据写入时,会将同一数据写入两份,降低了写的性能,假设RAID10是6块磁盘,在分块时,6块硬盘只能将数据分为3块同时写入,而6块硬盘RAID5可以分为5块同时写入,相比之下,顺序大IO的场景,RAID5更合适
官方建议
如果是SAS盘:做RAID5
如果是SATA盘:做RAID6,因为RAID6故障率更高
如果是SSD盘:做RAID10,而且SSD更适合随机数据
RAID2.0
RAID2.0相较于传统RAID的区别
传统RAID都是以硬盘为单位,参与RAID成员的最小单位是硬盘,在一个RAID里,只能是一种类型的硬盘,不能是SATA硬盘,SAS硬盘,SSD硬盘,这三种硬盘不能混合在一起做RAID
RAID2.0可以支持不同类型的硬盘做RAID,RAID2.0不是以硬盘为单位,而是以CK为单位
RAID2.0原理
将硬盘划分为若干个连续的固定大小的存储空间,成为存储块,即chunk,简称CK(华为存储默认是64MB,且不能更改)
chunk按RAID策略组合成RAID组,成为存储块组, 即chunk group,简称CKG
在CKG中划分若干个小数据块,即extent。LUN就是 由来自不同CKG的extent组成
用作热备盘空间的CK也是分散在各个盘上的
NL-SAS盘:Near-Line SAS,在SAS总线上接入了SATA硬盘
LD:逻辑磁盘
Extent:默认4M可调,数据热度统计和迁移的最小单位(颗粒度)
图片解释
由下往上,先看SSD这一列
- CK:首先,会将所有的SSD的空间按64M为大小切成一个又一个小块,这些小块既有数据的位置,也有热备的位置
- CKG:按RAID策略对CK这些存储小块进行分组,如RAID策略是RAID5,则这些小块(CK)就组成了RAID5组,CKG只能是一种类型的硬盘,由N个64M的CK把它合在一起组成了一个CKG
- SAS,NL-SAS那两列同理
- 看第一张图CKG那一行,不同类型的硬盘被划分成了不同的CKG,此时,各种类型的CKG之间还是相互独立的
- Extent:在CKG上划分出更小的单位来,叫extent,默认大小是4M(创建时可修改),这个Extent就有可能来自不同的硬盘,如图1中extent那一行
- LUN:此时,SSD,SAS,NL-SAS这三组RAID放在一个存储池里面,创建LUN时,LUN空间是从存储池里面划出来的,假设LUN空间为200G,这200G空间有可能会从SSD的Exitent中拿50G,从SAS的Extent中拿80G,从NL-SAS的Extent中拿30G,一起构成200G,这个LUN就是由三种不同类型的磁盘组成
LUN映射的是一块裸设备,也叫块设备,是不带文件系统的,需要分区格式化才能用
RAID2.0使用不同类型的磁盘有什么好处呢?
即解决了性能问题,又平衡了成本为题
重构速度非常快,每TB 30分钟,比传统RAID快了20倍,传统RAID以硬盘为单位进行数据重构,在RAID2.0中,假设某块硬盘损坏,该硬盘中的数据会被重构到其他CK中(每块硬盘都预留了热备CK),如果该硬盘换新了,会将部分旧数据迁移到该硬盘,新数据也会写入该硬盘,不是迁移损坏硬盘的原有数据,后台会自己算
RAID2.0使用了SmartTier分层技术
SmartTier原理
根据硬盘类型,将存储分为三个层面
- 高性能层:SSD
- 性能层:SAS
- 容量层:NL-SAS
把最活跃的数据放在高性能层,把热数据放在性能层,把冷数据放在容量层,即提升了性能,又节约了成本,这个过程是自动的
判断数据冷热的最小单位是extent,extent越小判断越准确,但CPU占用也更高
san存储中的相关技术名词
IQN:
在ISCSI组网中,一台主机使用IQN来表示,每台IQN是唯一的,QIN是根据主机名字随机生成的
WWPN:
FC的组网中是有WWPN的,FC组网需要专门的FC卡,FC卡上有FC专用的光模块,而WWPN的地址就是光模块端口号地址
FC卡也有一串地址,叫WWNN,中文名叫:全球唯一节点号,在FC卡上有个标签,可以看到该地址
FC卡的光模块也有一串地址,叫WWPN,中文名叫:全球唯一端口号,在FC卡和光模块上都能看到该地址
WWNs、WWN,实际上说的都是WWPN,简称而已
多路径
为了保证链路冗余,通常主机会使用两个网口分别连接存储的A控和B控,如下图
什么是多路径
当一台主机又两条或两条以上的链路连接同一个存储
两条链路连接同一个存储会有什么问题?
电脑上会看到两个盘,但需要手动指定用哪个盘,无法达到冗余的目的,需要安装多路径软件,将相同IQN的LUN合并为一个盘
不同厂商需要安装不同厂商的多路径软件(是否有通用的多路径软件未知)
多路径软件安装后需要重启,华为的多路径软件不支持win10,Winserver2012
安装完多路径软件后,对存储进行读写使用的是哪个网口呢?
根据算法自动选择转发网口,可选择的策略有:轮询(默认),最小队列,最小链路,无需太过留意是哪个口转发,两个口都转发
注意:
不同主机连接同一个LUN,这些主机必须时集群关系,而且文件系统必须格式化为带锁机制的集群级文件系统
为什么连接相同LUN的不同主机必须是集群关系
因为不同主机连接相同的LUN,不同主机都可以同时对LUN空间的文件进行读写,有可能多台主机同时对同一个文件进行操作,造成文件损坏
例如华为FusionCompute的CNA链接存储后,查看存储挂载情况
华为存储挂在后,会以【dm】开头,所以通过这个可以找到它挂在的ipsan存储,他的文件系统类型既不是xfs,也不是ext3,而是ocfs2,这个就是集群级文件系统
相关文章:

云计算基础-存储基础
存储概念 什么是存储: 存储就是根据不同的应用程序环境,通过采取合理、安全、有效的方式将数据保存到某些介质上,并能保证有效的访问,存储的本质是记录信息的载体。 存储的特性: 数据临时或长期驻留的物理介质需要保…...

问题:人的安全知识和技能是天生的。() #媒体#知识分享#学习方法
问题:人的安全知识和技能是天生的。() 人的安全知识和技能是天生的。() 参考答案如图所示 问题:()是党和国家的根本所在、命脉所在,是全国各族人民的利益所在、幸福所在。 A.人民当家作主 B.坚持和完善…...

【数据分享】2001~2020年青藏高原植被净初级生产力数据集
各位同学们好,今天和大伙儿分享的是2001~2020年青藏高原植被净初级生产力数据集。如果大家有下载处理数据等方面的问题,您可以私信或评论。 朱军涛. (2022). 青藏高原植被净初级生产力数据集(2001-2020). 国家青藏高原数据中心. …...

【Spring MVC篇】返回响应
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【Spring MVC】 本专栏旨在分享学习Spring MVC的一点学习心得,欢迎大家在评论区交流讨论💌 目录 一、返回静态页面…...

阿里云BGP多线精品EIP香港CN2线路低时延,价格贵
阿里云香港等地域服务器的网络线路类型可以选择BGP(多线)和 BGP(多线)精品,普通的BGP多线和精品有什么区别?BGP(多线)适用于香港本地、香港和海外之间的互联网访问。使用BGP…...

(08)Hive——Join连接、谓词下推
前言 Hive-3.1.2版本支持6种join语法。分别是:inner join(内连接)、left join(左连接)、right join(右连接)、full outer join(全外连接)、left semi join(左…...

创新技巧|迁移到 Google Analytics 4 时如何保存历史 Universal Analytics 数据
Google Universal Analytics 从 2023 年 7 月起停止收集数据(除了付费 GA360 之外)。它被Google Analytics 4取代。为此,不少用户疑惑:是否可以将累积(历史)数据从 Google Analytics Universal 传输到 Goog…...

一个小而实用的 Python 包 pangu,实现在中文和半宽字符(字母、数字和符号)之间自动插入空格
🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一个小巧的库,可以避免自己重新开发功能。利用 Python 包 pangu,可以轻松实现在 CJK(中文、日文、韩文)和半宽字符(字母、数字和符号…...
openJudge | 中位数 C语言
总时间限制: 2000ms 内存限制: 65536kB 描述 中位数定义:一组数据按从小到大的顺序依次排列,处在中间位置的一个数或最中间两个数据的平均值(如果这组数的个数为奇数,则中位数为位于中间位置的那个数;如果这组数的个…...

ctfshow-文件上传(web151-web161)
目录 web151 web152 web153 web154 web155 web156 web157 web158 web159 web160 web161 web151 提示前台验证不可靠 那限制条件估计就是在前端设置的 上传php小马后 弹出了窗口说不支持的格式 查看源码 这一条很关键 这种不懂直接ai搜 意思就是限制了上传类型 允许…...
cudnn免登录下载
现在要下载cuDNN,点击下载的页面后都是出现要求先加入Nvidia developers才能进行下载,但这个注册的过程非常慢,常常卡在第二个步骤,这里根据亲身的经验介绍一个可以绕过这个注册或登陆步骤的方式直接下载cuDNN。遇到此类问题的可以…...

SQLyog安装配置(注册码)连接MySQL
下载资源 博主给你打包好了安装包,在网盘里,只有几Mb,防止你下载到钓鱼软件 快说谢谢博主(然后心甘情愿的点个赞~😊) SQLyog.zip 安装流程 ①下载好压缩包后并解压 ②打开文件夹,双击安装包 ③…...

java+SSM+mysql 开放式实验管理系统78512-计算机毕业设计项目选题推荐(免费领源码)
摘 要 我国高校开放式实验管理普遍存在实验设备使用率较低、管理制度不完善,实验设备共享程度不高等诸多问题。要在更大范围推行开放式实验管理,就必须在开放式实验教学管理流程中,通过引入信息化管理加大信息技术在其中的应用,才能真正发挥这种教学模式的开放性优势。 本系统…...
代码随想录算法训练营第三十三天|1005.K次取反后最大化的数组和、134.加油站、135.分发糖果
1005.K次取反后最大化的数组和 public class Solution {public int LargestSumAfterKNegations(int[] nums, int k) {int cnt0;int sum0;int minint.MaxValue;Array.Sort(nums);for(int i0;i<nums.Length;i){if(nums[i]>0){continue;}else{nums[i]-nums[i];cnt;}if(cntk…...

解决LeetCode编译器报错的技巧:正确处理位操作中的数据类型
一天我在leetcode上刷题时,遇到了这样的题目: 随即我写了如下的代码: int convertInteger(int A, int B) {int count 0;int C A ^ B;int flag 1;while(flag){if (C & flag){count;}flag<<1;}return count;} 但LeetCode显示如下…...

一周学会Django5 Python Web开发-Django5操作命令
锋哥原创的Python Web开发 Django5视频教程: 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计11条视频,包括:2024版 Django5 Python we…...

反转链表【基础算法精讲 06】
视频地址 反转链表【基础算法精讲 06】_哔哩哔哩_bilibili 概念 链表的每一个结点都包含节点值 和1指向下一个结点的next指针 , 链表的最后一个结点指向空; 206 . 反转链表 用cur记录当前遍历到的结点 , 用pre表示下一个结点 , 用nxt表示cur的下一个…...

Git 初学
目录 一、需求的产生 二、版本控制系统理解 1. 认识版本控制系统 2. 版本控制系统分类 (1)集中式版本控制系统 缺点: (2)分布式版本控制系统 三、初识 git 四、git 的使用 例:将 “ OLED文件夹 ”…...

智胜未来,新时代IT技术人风口攻略-第四版(弃稿)
文章目录 前言鸿蒙生态科普调研人员画像高校助力鸿蒙高校鸿蒙课程开设占比教研力量并非唯一原因 企业布局规划全盘接纳仍需一段时间企业对鸿蒙的一些诉求 机构入场红利机构鸿蒙课程开设占比机构对鸿蒙的一些诉求 鸿蒙实际体验高校用户群体高度认同与影响体验企业用户群体未来可…...

渗透专用虚拟机(公开版)
0x01 工具介绍 okfafu渗透虚拟机公开版。解压密码:Mrl64Miku,压缩包大小:15.5G,解压后大小:16.5G。安装的软件已分类并在桌面中体现,也可以使用everything进行查找。包含一些常用的渗透工具以及一些基本工…...

多部手机连接同一wifi的ip一样吗?如何更改ip
通常情况下,多部手机连接同一个WiFi时,它们的IP地址是各不相同的(在局域网内)。但是,从互联网(外网)的角度看,它们共享同一个公网IP地址。让我详细解释一下,并说明如何更…...
软件工程:关于招标合同履行阶段变更的法律分析
关于招标合同履行阶段建设内容变更的法律分析 一、基本原则 合同严守原则 根据《民法典》第465条,依法成立的合同受法律保护,原则上双方应严格按照约定履行。招标合同作为特殊类型的民事合同,其履行过程应当遵循更为严格的变更规则。 禁止…...

GelSight Mini触觉传感器:7μm精度+3D 映射,赋能具身智能精密操作
GelSight Mini 高分辨率视触觉传感器采用先进的光学成像与触觉感知技术,赋予机器人接近人类的触觉能力。该设备可捕捉物体表面微观细节,并生成高精度的2D/3D数字映射,帮助机器人识别形状、纹理及接触力,从而执行更复杂、精准的操作…...

OpenGL Chan视频学习-10 Dealing with Errors in OpenGL
bilibili视频链接: 【最好的OpenGL教程之一】https://www.bilibili.com/video/BV1MJ411u7Bc?p5&vd_source44b77bde056381262ee55e448b9b1973 函数网站: docs.gl 说明: 1.之后就不再单独整理网站具体函数了,网站直接翻译会…...

3D PDF如何制作?SOLIDWORKS MBD模板定制技巧
SOLIDWORKS制作3D PDF模版 SOLIDWORKS MBD能够帮助工程师以清晰直观的方式描述产品尺寸信息。在3D PDF文件中,用户可以自由旋转和移动视图,方便查看模型的各个尺寸细节。 本文将带您一步步学习如何使用SOLIDWORKS MBD制作专业的3D PDF模板,…...

[低代码表单生成器设计基础]ElementUI中Layout布局属性Form表单属性详解
Layout 布局 ElementUI 的 Layout 布局系统基于 24 栏栅格设计,提供了灵活的响应式布局能力,适用于各种页面结构的构建。(CSDN) 📐 基础布局结构 ElementUI 的布局由 <el-row>(行)和 <el-col>࿰…...

爬虫IP代理效率优化:策略解析与实战案例
目录 一、代理池效率瓶颈的根源分析 二、六大核心优化策略 策略1:智能IP轮换矩阵 策略2:连接复用优化 策略3:动态指纹伪装 策略4:智能重试机制 三、典型场景实战案例 案例1:电商价格监控系统 案例2:…...
C# 打印PDF的常用方法
这里先提供一个helper类的模板 1.使用默认程序打印 using System; using System.Collections.Generic; using System.Diagnostics; using System.Drawing.Printing; using System.IO; using System.Runtime.InteropServices;namespace PDF {public static class PrintHelper{#…...
怎么开机自动启动vscode项目
每次开机都得用 vscode 打开多个工程,然后用 vscode 里的终端启动,怎么设置成开机自动启动,省事点。 创建 bat 文件,用 cmd 启动,然后将 bat 文件放到 windows 启动文件夹中 yqp1.bat echo on cls d: cd D:\yqp\add…...

Knife4j框架的使用
文章目录 引入依赖配置Knife4j使用Knife4j 访问 SpringBoot 生成的文档 Knife4j 是基于 Swagger 的增强工具,对 Swagger 进行了拓展和优化,从而有更美观的界面设计和更强的功能 引入依赖 Spring Boot 2.7.18 版本 <dependency> <groupId>c…...