宿主机要重启、业务不能停?KVM 热迁移 + NFS 共享存储实操记录

发布时间:2026/10/28 10:14:16

宿主机要重启、业务不能停?KVM 热迁移 + NFS 共享存储实操记录 生产机上的一次重启往往意味着一片业务的停顿。KVM 热迁移要解决的就是这件事把一台正在运行的虚拟机从 A 宿主机搬到 B 宿主机业务几乎无感知。这篇用一套三节点实验KVM1 / KVM2 / NFS走完「克隆 → 配网络 → 搭共享存储 → 建虚拟机 → 迁移 → 验收 → 迁回」的完整链路并把课件里没写的迁移命令、SSH 免密前提和回退步骤一并补齐。文中命令名均标注英文全称如virsh virtual shell完整清单见文末《附命令英文全称速查表》。本文概要项目内容文章主题KVM 虚拟机热迁移的完整实验流程共享存储搭建、迁移命令、验收与回退所属类别云计算 → 虚拟化 → KVM 运维知识关键字virsh migrate·--live·virt-clone·nfs-server·showmount -e·exports·_netdev·nofail·virt-install·pool-define-as主线导读这篇分两条线走。第一条是步骤线第四到八章照着敲就能把虚拟机从 KVM1 搬到 KVM2第二条是原理线第一到三章讲清「为什么磁盘不用搬」「什么条件下才迁得动」。命令的参数解释集中在各命令小节步骤线里只给要敲的命令本身。一、热迁移在搬什么磁盘不动只搬内存与 CPU 状态热迁移live migration指虚拟机保持开机运行的前提下从一台宿主机转移到另一台。整个过程业务侧只感知到一次极短的卡顿通常是几十毫秒到几秒。1.1 搬过去的是三样东西搬运对象说明内存虚拟机当前的全部内存页分多轮迭代搬完CPU 设备状态vCPU 寄存器、中断控制器状态、时钟偏移虚拟机定义XML 配置在目标端重建保证迁移后配置一致磁盘不在搬运清单里。源与目标宿主机必须同时能访问同一份虚拟磁盘磁盘留在原处两边只是切换「谁在读谁在写」。这就是共享存储成为核心前提的原因。1.2 迭代迁移为什么要搬好几轮内存不是一块静止的快照。迁移期间虚拟机还在跑内存页持续被改写第一轮搬过去的页面到第二轮可能又脏了。解决办法是多轮迭代第一轮把全量内存页搬到目标端期间被改写的页标记为「脏页」下一轮只搬脏页每轮搬运的增量越来越小小到一定程度时暂停源虚拟机通常几十毫秒把最后剩余部分一次性搬完目标端恢复运行源端清理。这也是热迁移有「可容忍短时间中断」说法的由来——中断只发生在最后暂停的那一瞬间。1.4 四种可用的共享存储课件列了 NFS / Ceph / RBD / iSCSI 四种实际选型看规模方案形态适合场景注意事项NFS文件级共享实验环境、中小规模依赖网络延迟敏感型业务要评估iSCSI块级共享已有 SAN 的环境需要多路径配置防单点Ceph RBD分布式块存储中大型云平台三副本起步成本高Ceph FS分布式文件存储与 KVM 深度整合调优项多运维门槛高本实验用 NFS是因为它配置最简、三台机器就能验证完整链路。生产上 Ceph 与 iSCSI 更常见但迁移命令与前置条件完全一样——换掉的只是「磁盘放在哪」。1.3 与另外两种迁移的对照迁移类型虚拟机状态中断时长适用场景冷迁移静态迁移关机分钟级停机窗口充足的维护热迁移动态迁移保持运行毫秒到秒级不能停的业务课件里「用于可容忍短时间中断但必须要快速恢复业务。比如轻量级数据库业务桌面云业务」说的就是热迁移的适用边界高并发写密集的业务要谨慎内存脏页产生速度超过搬运速度时迁移可能迟迟无法收敛。二、什么时候用三个真实场景场景动因迁移方向服务器维护前要重启 / 换硬件先把虚拟机挪走迁出 → 维护完迁回服务器升级前升级过程有中断风险迁出 → 升级完迁回整合闲置资源把空闲机上的虚拟机集中关掉空机器迁往集中节点第三类是数据中心最常用的一台物理机上跑着几十台虚拟机运维可以把它们均匀分布到少数几台然后关掉完全空载的机器省电。三、前置条件四项迁移开始前逐项自查任何一项不满足都会在中途失败磁盘在共享存储上且源与目标宿主机都能访问。可用 NFS / Ceph / RBD / iSCSI。目标端有一台规格相同的空虚拟机CPU 核数、内存大小一致。名字可以与源相同也可以不同。两台宿主机之间网络可达且建议关闭防火墙本实验systemctl stop firewalld.service。生产环境应改为放行迁移所需端口。能接受一次短时间中断。业务层要有重连机制数据库类业务要确认连接池会重试。⚠️注意共享存储上的磁盘文件不能被任何一方以独占方式打开。如果源虚拟机磁盘还在 KVM1 的本地目录即使手工把文件复制到 NFS 上再改 XML 指向它也会因为缓存不一致导致数据损坏——必须在共享存储上重新创建虚拟机或先把磁盘转成共享存储上的 raw/qcow2 文件。四、搭环境从一台 KVM 克隆出三节点实验拓扑KVM1 是已经做完单机实验的宿主机从它完整克隆出 KVM2 和 NFS三台机器通过192.168.108.0/24网段互通。4.1 完整克隆 KVM1 → KVM2 / NFS克隆前先还原 KVM1 的快照保证源状态干净。virt-manager 里右键虚拟机 → 克隆 →选择完整克隆不要链接克隆完整克隆才是一份独立磁盘。# KVM1 上操作命令行等价写法virt-clone--originalkvm-node--nameKVM2--auto# --auto自动生成磁盘与 MACvirt-clone--originalkvm-node--nameNFS--autovirt-clone用法速查表参数含义英文原意--original源虚拟机名original--name新虚拟机名name--auto自动生成磁盘文件名与 MAC 地址auto--replace目标已存在时直接覆盖不再询问replace--file指定新磁盘路径默认与源同目录file完整克隆与链接克隆的区别完整克隆把磁盘完整复制一份新机器与原机器互不影响链接克隆只建一个差异盘原机器的磁盘文件被删链接克隆立刻失效。要做迁移实验必须用完整克隆。4.2 改主机名与 IP三台机器开机顺序先 KVM1再依次开 KVM2、NFS。逐台改主机名和 IP。# KVM1 上把克隆出来的机器改成 KVM2[rootKVM1 ~]# hostnamectl set-hostname KVM2[rootKVM1 ~]# bash # 换 shell 让新主机名生效[rootKVM2 ~]#[rootKVM2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens160TYPEEthernetBOOTPROTOnoneONBOOTyesIPADDR192.168.108.102# 改成本机 IPPREFIX24GATEWAY192.168.108.2#UUID3b58adc4-7bfb-4ce7-bdc5-7893a708ebb3 ← 这一行必须删掉[rootKVM2 ~]# nmcli connection reload ens160 # 让配置生效[rootKVM2 ~]# ip addr show ens160 # 验证地址已变机器IP角色KVM1192.168.108.101源宿主机KVM2192.168.108.102目标宿主机NFS192.168.108.100共享存储⚠️注意克隆出来的机器带着和源机器相同的 UUID网卡配置文件里那行#UUID不删两台机器会有相同的网卡标识nmcli会拒绝加载并报「连接已存在」。NFS 那台同样照此办理IP 改成192.168.108.100。4.3 三节点 hosts 同步迁移命令要用主机名互访先把 hosts 配好再复制到另外两台# KVM1 上操作[rootKVM1 ~]# cat /etc/hosts EOF192.168.108.100 NFS192.168.108.101 KVM1192.168.108.102 KVM2 EOF[rootKVM1 ~]# scp /etc/hosts rootKVM2:/etc/hosts # 复制到 KVM2[rootKVM1 ~]# scp /etc/hosts rootNFS:/etc/hosts # 复制到 NFS五、NFS 共享存储让两台 KVM 看到同一份磁盘5.1 /etc/exports 五个参数逐个讲[rootNFS ~]# mkdir /nfs # 用于共享的目录[rootNFS ~]# vim /etc/exports/nfs *(rw,no_root_squash,no_subtree_check)参数含义英文原意/nfs共享出去的目录第一列固定是路径导出路径*允许所有网段访问通配所有客户端rw客户端对该目录有读写权限read-writeno_root_squash客户端用 root 访问时不映射 root不压缩 rootno_subtree_check不检查父目录权限不检查子树root_squash默认行为会把客户端的 root 映射成匿名用户虚拟机的磁盘文件以 root 身份写入时就会权限不足所以这里必须写no_root_squash。5.2 服务端验证本地先通[rootNFS ~]# systemctl restart nfs-server.service # 重启 NFS 服务[rootNFS ~]# showmount -e localhost # 本地测试共享成功没Export listforlocalhost: /nfs *[rootNFS ~]# systemctl stop firewalld.service # 停止防火墙服务5.3 客户端验证跨机能看见# 在 KVM1、KVM2 上分别执行[rootKVM1 ~]# showmount -e 192.168.108.100Export listfor192.168.108.100: /nfs *[rootKVM1 ~]# mkdir /NFS[rootKVM2 ~]# mkdir /NFS两级验证都要过本地showmount -e localhost能列出来说明服务端导出正常跨机showmount -e NFS IP能列出来说明网络与防火墙没挡。只过第一级就往下走是新手最常卡住的地方。5.4 挂载与持久化临时挂载用于立即验证写进 fstab 才能重启后还在mount-tnfs192.168.108.100:/nfs /NFS# 临时挂载df-h/NFS# 验证应看到 192.168.108.100:/nfs# /etc/fstab 追加一行192.168.108.100:/nfs /NFS nfs defaults,_netdev,nofail00选项作用英文原意_netdev声明这是网络挂载等网络就绪后再挂network devicenofail挂不上也不阻塞启动no fail_netdev不加开机时网卡还没起来就去挂 NFS必然失败nofail不加NFS 那台没开会让本机卡在启动阶段。两个都写是网络存储 fstab 的固定写法。六、KVM 挂载 NFS 存储池并在共享存储上建虚拟机6.1 图形化添加存储池virt-manager 里选中 KVM1 → 左下角添加新存储字段填法TypenetfsTarget Path/NFS本机挂载目录Host NameNFS的地址Source Path/nfsNFS 共享目录KVM2 做同样的操作。6.2 命令行等价写法图形化点选背后是这几条命令脚本化部署时直接抄[rootKVM1 ~]# virsh pool-define-as nfs-pool netfs \--source-host192.168.108.100 --source-path /nfs--target/NFS[rootKVM1 ~]# virsh pool-build nfs-pool # 建挂载点目录[rootKVM1 ~]# virsh pool-start nfs-pool # 挂载[rootKVM1 ~]# virsh pool-autostart nfs-pool # 设开机自启[rootKVM1 ~]# virsh pool-list --details # 验证state 应为 runningpool-define-as用法速查表参数含义英文原意名称存储池名字位置参数netfs池类型网络文件系统network file system--source-hostNFS 服务器地址source host--source-pathNFS 上共享出来的目录source path--target本机的挂载点目录targetpool-define-as只是把定义写进 libvirt 配置并不会真的挂上。pool-build建目录、pool-start才执行挂载三步缺一不可。6.3 在共享存储上创建虚拟机上传 CentOS 镜像到 KVM1然后创建虚拟机磁盘位置选共享存储# 命令行写法磁盘放在 nfs-pool 里virt-install--namevm-web01--ram2048--vcpus2\--diskpoolnfs-pool,size20,busvirtio\--cdrom/var/lib/libvirt/images/CentOS-stream-9.iso\--networknetworkdefault--graphicsvnc,listen0.0.0.0\--os-variant centos-stream9--disk poolnfs-pool,size20指定磁盘建在存储池里。正常装完系统重启时会自动弹出光盘。virt-install用法速查表全文仅此一张两处示例共用参数含义英文原意--name虚拟机名称name--ram内存大小单位 MBrandom access memory--vcpus虚拟 CPU 核数virtual CPUs--disk磁盘可写pool池名,sizeGB,bus总线disk--cdrom挂载安装镜像CD-ROM--network网络可写network网络名network--graphics图形方式vnc,listen0.0.0.0监听所有地址graphics--os-variant操作系统类型影响默认硬件配置OS variant--noautoconsole不自动打开控制台窗口no auto console--print-xml只打印 XML 不真正创建常配管道给virsh defineprint XML--location指定安装源网络仓库或 ISO 路径location--print-xml | virsh define /dev/stdin这个组合很常用先生成 XML 再定义得到一台不装系统的空虚拟机正是热迁移目标端需要的形态。七、执行迁移两条路7.1 前置目标端建好空虚拟机 SSH 免密迁移的目标端要先有一台规格相同的空虚拟机。用virt-clone带--replace不适用源还在跑正解是直接建一台不装系统的# KVM2 上建一台同规格空虚拟机不装系统virt-install--namevm-web01--ram2048--vcpus2\--diskpoolnfs-pool,size20,busvirtio\--networknetworkdefault--graphicsvnc\--os-variant centos-stream9--noautoconsole--print-xml|virshdefine /dev/stdin再配 SSH 免密virsh migrate走的是 libvirt 远端协议# KVM1 上操作[rootKVM1 ~]# ssh-keygen -t ed25519 -N -f /root/.ssh/id_ed25519[rootKVM1 ~]# ssh-copy-id rootKVM2 # 输入 KVM2 的 root 密码一次[rootKVM1 ~]# ssh rootKVM2 virsh --version # 验证免密可用7.2 virsh migrate参数逐个表virshmigrate--live--persistent--undefinesource\vm-web01 qemussh://KVM2/system参数含义英文原意--live热迁移虚拟机不停机在线--persistent目标端配置持久化重启后仍在持久--undefinesource迁移成功后删除源端虚拟机定义取消源定义--copy-storage-all磁盘也一起复制非共享存储场景复制全部存储--change-protection禁止迁移期间被意外中断保护模式qemussh://KVM2/system目标 libvirt 地址qemu 协议 SSH 通道--undefinesource对应课件里「将源虚拟机删除」那一步。如果不加KVM1 上会留下一份已关机的同名定义之后在 KVM1 上误启动会同时挂载同一份磁盘造成数据损坏。7.3 图形化迁移virt-manager 里右键虚拟机 →Migrate迁移填目标主机名KVM2勾选「迁移后删除源定义」等待进度条走完。图形化本质就是调用同一条virsh migrate --live。7.4 迁移前的最后一步关防火墙# KVM1、KVM2 都要执行[rootKVM1 ~]# systemctl stop firewalld.service[rootKVM2 ~]# systemctl stop firewalld.service7.5 迁移过程的实时观测迁移是异步进行的命令返回后作业仍在后台跑。用domjobinfo看进度# 在 KVM1 上执行另开一个终端[rootKVM1 ~]# virsh domjobinfo vm-web01Job type: Virtual machine migration Operation: Outgoing migration Time elapsed:8124ms Time remaining:43876ms Data processed:1.125GiB Data remaining:2.875GiB Memory processed:1.125GiB Memory remaining:2.875GiB Expected downtime:12ms Compression cache:256.5MiB字段含义怎么用Data processed/Data remaining已搬 / 待搬的内存总量估算还要多久Expected downtime预计的最后一次暂停时长判断业务能否接受Memory bandwidth当前搬运速率过低说明网络或磁盘是瓶颈⚠️ 关注Expected downtime它随迭代轮次逐步收敛。若长时间停留在几百毫秒以上说明脏页产生速度接近搬运速度迁移可能迟迟无法完成——写密集型业务要警惕这一点。7.6 限速与大规模迁移一次迁走十几台虚拟机会把网络占满影响同网段的其他业务。virsh migrate-setmaxdowntime控制暂停时长上限带宽则靠存储与网络侧控制# 在 KVM1 上执行[rootKVM1 ~]# virsh migrate-setmaxdowntime vm-web01 500 # 暂停上限 500 毫秒[rootKVM1 ~]# virsh migrate-setmaxdowntime vm-web01 0 # 0 取消上限尽快完成暂停上限越大总迁移时间越短省去反复迭代但业务中断感越明显上限越小中断越短总时间越长。生产上按业务的敏感程度折中取 100~500 毫秒。八、验收与回退8.1 四项验收迁移命令返回即算成功但要确认真的落在 KVM2 上# 在 KVM2 上执行[rootKVM2 ~]# virsh list --all # 状态应为 running[rootKVM2 ~]# virsh domblklist vm-web01 # 磁盘应指向 /NFS 下的共享文件[rootKVM2 ~]# virsh domjobinfo vm-web01 # 无进行中的作业# 在虚拟机内部执行ipaddr show ens160# 业务连通性仍在IP 未变domblklist是最关键的一条如果磁盘还指向 KVM1 的本地路径说明这台虚拟机根本没建在共享存储上之前几步有遗漏。8.2 中途失败的回退迁移过程中中断源虚拟机通常仍在运行业务不受影响。若源端状态异常# KVM1 上执行[rootKVM1 ~]# virsh list --all # 确认源还在[rootKVM1 ~]# virsh domjobabort vm-web01 # 放弃未完成的迁移作业[rootKVM1 ~]# virsh snapshot-revert vm-web01 clean # 必要时还原到迁移前的快照8.3 迁回 KVM1维护 / 升级完成后原路迁回方向反过来即可# 在 KVM2 上操作[rootKVM2 ~]# virsh migrate --live --persistent --undefinesource \vm-web01 qemussh://KVM1/system九、踩坑记录现象根因处置nmcli connection reload后 IP 没变配置文件里 UUID 行没删加载的是旧连接删#UUID行后重新 reloadshowmount -e IP超时防火墙没关或 NFS 服务没起systemctl stop firewalldsystemctl restart nfs-server客户端 root 写不进共享目录exports 用了默认的root_squash改成no_root_squash并exportfs -r迁移报磁盘路径不可访问磁盘不在共享存储或在 KVM1 本地在共享存储池上重建虚拟机迁移后 KVM1 仍留同名定义漏加--undefinesource手工virsh undefine vm-web01十、补遗libvirt 工具族与虚拟化产品清单10.1 virt-viewer只做一件事的图形控制台项说明作用连接虚拟机的 VNC / SPICE 画面单独弹出窗口不管什么不创建、不修改、不删除虚拟机典型用法virt-viewer --connect qemu:///system vm-web01virt-manager 内置的虚拟机控制台就是调用它。只想看一台机器屏幕时单独开一个 viewer 比打开整个管理界面轻。10.2 virt-sysprep镜像交付前的清理把虚拟机转成模板前用它清掉机器相关的身份信息避免克隆出来的机器主机名、SSH 主机密钥、MAC 缓存全一样virt-sysprep-dvm-web01# 直接作用于一台已关机的虚拟机清理项说明主机名与 /etc/hosts还原成默认值SSH 主机密钥删除下次开机重新生成网卡 MAC 与 udev 持久化规则清除日志与历史记录清空⚠️ 操作前必须关机且不可逆建议先做一份快照。10.3 常见虚拟化产品对照产品定位KVMLinux 内核虚拟化模块开源云厂商主流QEMU硬件模拟器常与 KVM 配合做 I/O 虚拟化XenHypervisor 在操作系统之下Dom0 管理域VMware ESX / ESXi商业 HypervisorvSphere 体系核心Microsoft Hyper-VWindows Server 内置虚拟化Virtuozzo容器级虚拟化共享内核LXCLinux 容器操作系统级隔离FusionCompute华为服务器虚拟化产品 参考资料官方文档 · 中英双语英文原版virsh 命令行工具手册libvirt 迁移官方文档exports 文件格式手册man7中文版在 Linux ECS 上挂载 NFS 协议文件系统阿里云其余手册在服务器上直接查showmount、exportfs、mount.nfs等无需联网man1virsh# 虚拟机管理命令man1virt-install# 创建虚拟机man1virt-clone# 克隆虚拟机man1virt-sysprep# 镜像清理man5exports# NFS 导出配置man8exportfs# 导出表维护man8showmount# 查看 NFS 导出表man8nfsd# NFS 服务端守护进程附命令英文全称速查表命令 / 缩写英文全称 / 原意作用virshvirtual shelllibvirt 命令行管理工具virt-installvirtual install命令行创建虚拟机virt-clonevirtual clone克隆虚拟机virt-viewervirtual viewer虚拟机图形控制台virt-sysprepvirtual system preparation虚拟机镜像清理migratemigrate虚拟机迁移NFSNetwork File System网络文件系统nfs-serverNFS serverNFS 服务端showmountshow mount查看 NFS 导出表exportsexportsNFS 导出配置文件exportfsexport file system维护导出表TCOTotal Cost of Ownership总体拥有成本总结热迁移的关键不在那条virsh migrate命令而在它前面的准备——磁盘必须落在 NFS / Ceph 这类共享存储上目标端要有同规格空虚拟机两台宿主机之间 SSH 免密与防火墙都要提前打通。这篇的三节点实验把这四件事按顺序做完了命令可以直接照着敲。同系列 · KVM 虚拟化实战上一篇《KVM 虚拟机管理virt-manager 与 virsh 命令速查手册》相关篇《KVM 装完连不上VNC、光驱、快照三类坑的排错实录》相关篇《虚拟化到底虚拟了什么CPU、内存、IO 三层原理拆解》⬅️ 上一篇KVM 虚拟机管理与命令速查 ➡️ 下一篇ESXi 嵌套部署与磁盘置备 你迁移虚拟机时踩过什么坑Permission denied还是磁盘路径不可访问评论区贴出报错一起看。
延伸阅读

更多相关文章

2026/10/28 10:14:16

在 1Panel 应用商店部署 RustFS:安装、配置与验证步骤

装一套对象存储,教程往往一上来就是十几行的 docker run:挂卷、设环境变量、开端口,装完还得自己琢磨凭证和 TLS 的事。如果只是想给备份、图床或者网盘找个存储后端,可以先走一条更省事的路:RustFS 已经上架了 1Panel…

2026/10/28 10:09:13

电商用户画像构建方案:多源数据融合与DeepSeek偏好预测实战

简介:这份213页的PDF方案面向电商数据从业者、算法工程师与推荐系统学习者,围绕多源数据融合下的用户画像构建展开,系统解决消费者行为分析与偏好预测中的工程落地问题。内容从行业痛点与DeepSeek方案定位切入,依次覆盖多源数据采…

2026/10/28 10:09:13

苎麻面料知识整理:为什么叫“中国草”

摘要:本文以可核对口径整理苎麻面料的基础知识:苎麻是以苎麻韧皮纤维为主要原料制成的纺织品,原产中国,英文名 ramie,国际别称 China grass(中国草)。文中说明纯苎麻与混纺的成分区分、纤维长而…

2026/10/28 11:25:07

Riffusion音频生成技术解析与应用实践

1. Riffusion音频生成技术解析Riffusion作为当前最前沿的AI音频生成模型,其核心是基于扩散模型(Diffusion Model)的频谱图生成技术。与传统音频生成方式不同,Riffusion直接在频谱域进行操作,通过迭代去噪过程生成高质量的音频频谱图&#xff…

2026/10/28 11:25:07

智能零售系统架构设计:高并发支付与实时行为分析

1. 项目背景与核心挑战大阪作为日本关西地区的商业中心,近年来智能零售业态快速发展。我们团队为当地某大型连锁便利店集团设计的这套系统,需要同时解决两个关键问题:一是高峰时段每秒数千笔的移动支付处理需求,二是对顾客动线、停…

2026/10/28 11:25:07

RT-DETR:实时目标检测的Transformer架构解析与实践

1. RT-DETR技术概述:当Transformer遇上实时目标检测RT-DETR(Real-Time Detection Transformer)是近年来目标检测领域最具突破性的架构之一。作为DETR系列的最新进化版本,它成功解决了传统Transformer检测器在实时性上的瓶颈问题。…

2026/10/28 11:25:07

家庭清洁清单:从区域到核对

先把范围写清楚整理家庭清洁清单时,可以先按厨房、卫生间、卧室和公共区域分类。每个区域只列需要处理的具体位置,例如台面、柜门外侧或地面。把整理物品与清洁表面分开记录,能更容易看清本次要做什么,也方便之后逐项核对。让步骤…

2026/10/28 11:25:07

AIC、MDL、MEVARC信源数目估计:原理、MATLAB实现与避坑指南

做阵列信号处理的朋友大概率都遇到过这个场景:采了一段多通道数据,画完特征值谱,盯着那条曲线琢磨——到底有几个源?信源数目估错了,后面的波束形成、DOA估计、盲源分离全是白搭。我最早做这套东西的时候,图…

2026/10/27 14:24:03

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/27 9:34:54

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/28 3:32:29

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/28 0:02:13

Python股票自动交易系统源码解析:从行情获取到风控的完整链路

简介:这份资源是面向高校计算机、金融相关专业毕业设计场景的完整项目源码包,主题为基于Python的股票自动交易系统,适合需要完成毕设选题、课程设计或自学金融量化交易开发的学生与开发者参考。压缩包共收录687个文件,整体约14.93…

2026/10/28 0:02:13

视酷酷信IM源码部署指南:Java 17+MySQL 8.0.33实战配置

简介:这是一套2024年亲测可部署的视酷酷信IM即时通讯系统源码,面向具备Java、OC、C#及Vue开发能力的技术人员,解决私有化即时通讯平台快速搭建与二次定制需求,尤其适用于需集成商城、保障数据主权的中小型企业或独立开发者。资源共…

2026/10/28 0:02:13

Python爬取百度迁徙数据:接口解析、批量采集与避坑指南

简介:这份资源是一个用Python爬取百度迁徙数据的脚本压缩包,面向具备Python基础、希望入门网络爬虫与数据解析的开发者,解决按日期获取全国热门城市人口迁徙数据的问题。包内共1个文件,为单个py脚本,压缩包约1KB&#…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑