Kubernetes队列调度组件对比:Kueue与Volcano的核心差异与选型指南
1. 从资源争抢到有序调度为什么我们需要Kubernetes队列组件在Kubernetes集群里跑生产负载尤其是大规模机器学习训练、高性能计算或者批量数据处理任务时你肯定遇到过这种场景几十个Job同时提交集群的CPU和内存瞬间被瓜分殆尽新来的任务只能Pending。更头疼的是有些高优先级的任务被一堆低优先级的任务卡着资源利用也不均衡有的节点撑爆了有的却在“摸鱼”。原生的Kubernetes调度器虽然强大但它主要解决的是“一个Pod该去哪台Node”的瞬时调度问题对于这种需要排队、有依赖关系、需要复杂资源协调的批量作业场景就显得力不从心了。它缺乏一个全局的、智能的“队列”和“仲裁”视角。这就引出了我们今天要聊的核心Kubernetes的队列组件。它们不是简单的消息队列而是集群级别的“作业调度中心”或“资源协调器”。它们站在Kubernetes调度器之上管理着作业的生命周期决定哪个作业能获得资源、何时获得、获得多少确保集群资源被高效、公平且符合策略地利用。在社区里Kueue和Volcano是当前最受关注的两个选手。你可能在技术论坛或者公司内部分享里反复听到它们的名字但到底该选哪个它们的设计哲学、适用场景和上手成本有何不同这篇文章我就结合自己在这两个项目上的实际部署和调优经验为你做一次深度的对比拆解。无论你是正在为团队选型的架构师还是需要解决具体资源争抢问题的运维工程师相信都能找到清晰的答案。2. 设计哲学与架构定位两种不同的解题思路要理解Kueue和Volcano首先要看它们的“出身”和“初心”。这决定了它们解决问题的根本方式。2.1 Kueue原生集成专注公平共享的“资源门卫”Kueue是Kubernetes官方SIG-Scheduling孵化的项目你可以把它看作是Kubernetes调度生态的“原住民”扩展。它的设计哲学非常明确不替代默认调度器而是增强它。Kueue将自己定位为一个“资源队列管理器”或“配额执行者”。它的核心工作模式是这样的你定义一些“ClusterQueue”集群队列和“LocalQueue”本地队列并为它们分配资源配额比如100个CPU200GiB内存。当用户提交一个Job或任何支持的工作负载如Deployment时并不直接去抢占真实的集群资源而是先进入一个LocalQueue。Kueue会检查这个队列的父ClusterQueue是否有足够的配额。如果有Kueue会“准许”这个Job并为其管理的Pod打上特定的标签。这时原生的Kubernetes调度器才开始工作像平常一样为这些Pod寻找合适的节点。如果资源不足Job就乖乖在队列里等待直到前面的任务完成释放出配额。你可以把Kueue想象成一个高级的“俱乐部门卫”。它手里有一份会员队列名单和各自的消费额度配额。客人Job来了先看是不是会员、额度够不够。门卫Kueue点头了客人才能进场至于进场后坐哪个卡座Node由俱乐部内部的服务员kube-scheduler来安排。这种架构带来的最大好处就是轻量和原生。它几乎不需要改变你现有的工作流只是增加了一层资源准入控制特别适合已经稳定运行、只想解决多团队或多项目间资源公平性问题的集群。2.2 Volcano一站式的批量计算“调度平台”Volcano的出身则完全不同。它源自华为云最初是为了解决AI、大数据等批量计算场景的复杂调度需求而生。它的设计哲学更为宏大提供一个功能完整的批量作业调度平台。Volcano没有选择增强默认调度器而是直接替换了它。Volcano实现了一个全新的调度器volcano-scheduler这个调度器内置了对“队列”、“作业”、“任务组”等批量计算核心概念的一级支持。它不仅仅管理资源配额还实现了多种高级调度策略比如公平调度fair-share、优先级priority、抢占preemption、任务拓扑排序基于依赖、资源预留reservation和弹性配额elastic quota等。更重要的是它针对批量作业的特点提供了“组调度Gang Scheduling”能力。这是Volcano的杀手锏。什么是组调度想象一个分布式训练任务需要同时启动8个Pod比如1个master7个worker。在原生K8s中这8个Pod是独立调度的很可能出现7个启动了第8个因为资源不足永远Pending导致先启动的7个空等资源白白浪费。组调度要求这8个Pod“要么全部成功调度要么一个都不调度”完美解决了这个“资源死锁”问题。所以Volcano更像一个功能齐全的“交通指挥中心”。它不仅管哪个方向的车可以走队列配额还管公交优先、特种车辆通行优先级与抢占甚至能协调一个车队同时通过路口组调度。它的功能强大但架构也更重需要你接受一套新的调度体系。注意架构选择是根本性的。如果你需要一个非侵入式的、解决公平性问题的方案Kueue的“门卫”模式更合适。如果你面临的是复杂的批量作业场景需要组调度等高级功能那么Volcano的“指挥中心”模式是更自然的选择。混合部署在部分节点或命名空间使用Volcano虽然可能但复杂度很高一般不推荐新手尝试。3. 核心功能与特性深度对比了解了设计哲学我们深入到具体功能层面用表格和细节来对比它们的异同。特性维度KueueVolcano核心定位资源队列管理与配额执行批量计算调度平台与k8s调度器关系协同工作增强准入控制替代提供全新调度器核心抽象Queue, ClusterQueue, WorkloadJob, Queue, PodGroup, Command关键调度策略公平共享 (Fair Sharing) 基于优先级 (Priority)公平共享 优先级组调度 (Gang) 抢占 资源预留 拓扑调度 回填 (Backfill)工作负载支持Job, RayJob, MPIJob (通过Kueue API适配)Job (vcjob) 也支持原生K8s Job功能受限资源模型基于配额 (Quota)基于队列配额支持弹性配额依赖管理无内置依赖上层工作流引擎如Argo内置任务依赖通过DAG定义部署复杂度低仅需安装Kueue控制器中高需安装调度器、控制器、admission等组件社区与生态Kubernetes官方SIG孵化 集成路径清晰CNCF孵化项目 在AI/Batch领域生态丰富3.1 队列与配额管理精细度与灵活度两者都提供了队列概念但实现方式和灵活性有差异。Kueue的配额管理非常直观和“K8s原生”。你定义一个ClusterQueue指定它可以消耗的集群资源总量spec.resourceGroups。然后创建LocalQueue并指定它属于哪个ClusterQueue。配额是在ClusterQueue级别管理的。Kueue还支持更精细的“借出Borrowing”机制如果一个ClusterQueue有剩余配额而另一个配额用尽了后者可以向前者“借用”资源这提高了整体利用率。此外Kueue可以通过ResourceFlavor来区分不同特性的资源比如带GPU的节点、高内存节点实现更细粒度的队列资源分配。# Kueue ClusterQueue 示例片段 apiVersion: kueue.x-k8s.io/v1beta1 kind: ClusterQueue metadata: name: research-gpu spec: resourceGroups: - coveredResources: [cpu, memory, nvidia.com/gpu] flavors: - name: gpu-ai-nodes resources: - name: cpu nominalQuota: 50 # 50个CPU核心的配额 - name: nvidia.com/gpu nominalQuota: 8 # 8块GPU的配额Volcano的队列管理同样强大且支持弹性配额。你可以设置队列的guarantee保证资源和capability上限资源。在资源紧张时队列至少能获得guarantee部分的资源当集群空闲时队列可以突破guarantee直至达到capability的上限。这种设计非常适合资源使用波动大的场景比如白天在线服务优先晚上批量作业可以充分利用空闲资源。3.2 调度策略从公平到协同这是两者差异最大的地方。Kueue的调度核心是“准入”而非“调度”。它的公平性体现在配额分配和作业排序上。它支持基于优先级的队列排序但在Pod级别的具体调度决策上完全委托给了默认调度器。这意味着你无法通过Kueue直接实现“组调度”或复杂的跨Pod依赖调度。如果你的作业需要这些特性必须依赖作业框架自身如Kubeflow Training Operator或上层工作流引擎如Argo Workflows来模拟实现通常是通过创建多个关联Job并手动管理依赖这增加了复杂性和脆弱性。Volcano的调度策略是其灵魂。除了基础的公平和优先级重点看两个高级特性组调度 (Gang Scheduling)通过PodGroupCRD实现。一个vcjob下的所有Pod都属于同一个PodGroup。调度器会检查PodGroup的minAvailable字段只有当集群能同时满足至少minAvailable个Pod的资源需求时才会开始调度这个组里的任何一个Pod。这彻底解决了分布式任务的部分启动问题。# 在 Volcano Job 中定义 PodGroup apiVersion: batch.volcano.sh/v1alpha1 kind: Job metadata: name: distributed-training spec: minAvailable: 4 # 需要至少4个Pod同时就绪才启动 tasks: - replicas: 4 name: worker template: spec: containers: [...]任务拓扑与依赖调度Volcano Job支持定义多个tasks并通过dependsOn字段描述任务间的依赖关系形成一个DAG有向无环图。调度器会严格按照DAG的顺序来调度任务只有前置任务完成后后续任务才会被调度。这对于有严格阶段性的数据处理流水线至关重要。3.3 工作负载支持与扩展性Kueue通过“工作负载Workload”这一自定义资源来抽象待调度的单元。社区提供了多种“集成Integration”可以自动将原生的KubernetesJob、RayJob、Kubeflow MPIJob等资源转换为Kueue的Workload。这种设计非常优雅意味着未来支持新的工作负载类型主要就是编写一个集成控制器扩展性很好。但对于一些非常定制化的CRD你可能需要自己编写集成逻辑。Volcano则主要围绕自己的JobvcjobAPI来构建生态。虽然它也支持将原生K8sJob通过webhook转换成vcjob来享受高级调度功能但最完整的功能如组调度、DAG都绑定在vcjob上。这意味着如果你要使用Volcano通常需要将你的作业模板改为vcjob的格式。它的生态如与Kubeflow、TensorFlow/PyTorch Operator的集成也是围绕vcjob展开的。这种深度集成的模式功能强大但迁移成本相对较高。4. 实战部署与配置要点理论说再多不如动手搭一遍。这里我分享两个组件在部署和初步配置中的关键步骤和避坑点。4.1 Kueue部署轻量快速入门部署Kueue非常简单通常一条命令即可kubectl apply -f https://github.com/kubernetes-sigs/kueue/releases/download/v0.6.0/manifests.yaml这会在你的集群中安装Kueue的核心控制器。接下来你需要定义资源模型和队列。第一步定义ResourceFlavor资源风味。这用于描述集群中不同“类型”的节点资源。apiVersion: kueue.x-k8s.io/v1beta1 kind: ResourceFlavor metadata: name: default-flavor spec: nodeLabels: node-type: default # 匹配带有 node-typedefault 标签的节点 --- apiVersion: kueue.x-k8s.io/v1beta1 kind: ResourceFlavor metadata: name: gpu-flavor spec: nodeLabels: accelerator: nvidia # 匹配带有 acceleratornvidia 标签的节点第二步创建ClusterQueue。这是资源配额池。apiVersion: kueue.x-k8s.io/v1beta1 kind: ClusterQueue metadata: name: team-a-queue spec: resourceGroups: - coveredResources: [cpu, memory] flavors: - name: default-flavor resources: - name: cpu nominalQuota: 20 - name: memory nominalQuota: 40Gi - coveredResources: [nvidia.com/gpu] flavors: - name: gpu-flavor resources: - name: nvidia.com/gpu nominalQuota: 4第三步创建LocalQueue。这是用户或团队直接提交作业的入口。apiVersion: kueue.x-k8s.io/v1beta1 kind: LocalQueue metadata: namespace: team-a name: training spec: clusterQueue: team-a-queue # 指向父ClusterQueue第四步提交工作负载。你需要为你的Job添加一个标签告诉Kueue它应该进入哪个队列。apiVersion: batch/v1 kind: Job metadata: name: my-job namespace: team-a labels: kueue.x-k8s.io/queue-name: training # 关键标签指定队列 spec: template: spec: containers: [...]实操心得部署Kueue后一定要用kubectl get clusterqueue和kubectl describe clusterqueue name命令查看配额使用状态。一个常见的坑是忘记给节点打上ResourceFlavor中定义的标签导致队列配额永远为0作业一直Pending。另外Kueue的日志级别默认不高排查复杂问题时可以通过修改Deployment的--v5参数来调高日志级别。4.2 Volcano部署组件化安装与配置Volcano的部署涉及多个组件建议使用Helm Chart管理起来更方便。# 添加仓库并安装 helm repo add volcano https://volcano-sh.github.io/helm-charts helm install volcano volcano/volcano --namespace volcano-system --create-namespace安装完成后你会看到volcano-scheduler、volcano-admission、volcano-controllers等Pod。核心配置调度器配置文件。Volcano的强大功能需要通过调度器配置文件volcano-scheduler-configmap来开启和调整。apiVersion: v1 kind: ConfigMap metadata: name: volcano-scheduler-config namespace: volcano-system data: volcano-scheduler.conf: | actions: enqueue, allocate, backfill, preempt # 启用的调度动作 tiers: - plugins: - name: priority - name: gang - name: conformance - plugins: - name: drf # 主导资源公平调度 - name: predicates - name: nodeorder - name: binpack # 尽量将Pod打包到少数节点腾出空节点 ...你需要根据集群规模和工作负载特性调整插件顺序和参数。例如gang插件是组调度的核心必须启用preempt插件用于抢占在生产环境启用需谨慎。创建Volcano队列apiVersion: scheduling.volcano.sh/v1beta1 kind: Queue metadata: name: high-prio-queue spec: weight: 1 # 队列权重用于公平调度计算 capability: cpu: 20 memory: 40Gi guarantee: cpu: 10 memory: 20Gi提交Volcano JobapiVersion: batch.volcano.sh/v1alpha1 kind: Job metadata: name: vcjob-example spec: minAvailable: 3 schedulerName: volcano # 关键指定调度器为volcano queue: high-prio-queue tasks: - replicas: 3 name: task-a template: spec: containers: [...]避坑指南从原生K8s Job迁移到Volcano Job时最大的变化是spec.tasks.template的结构它嵌套在tasks下而不是直接在spec下。务必仔细检查YAML结构。另外schedulerName: volcano这个字段绝对不能少否则Pod会走默认调度器。在启用抢占(preempt)功能时一定要设置好作业的优先级(priorityClassName)并清楚理解抢占逻辑避免高优的短作业不合理地打断低优的长作业造成“饥饿”现象。5. 性能、稳定性与运维复杂度对比在生产环境引入新组件性能和运维成本是必须考量的。性能影响Kueue由于它只做准入控制真正的调度决策仍由经过多年优化的kube-scheduler做出因此对调度性能的影响微乎其微。它的控制器只监听Workload和Queue资源开销很小。Volcano实现了一个完整的调度器循环复杂度更高。在调度大规模批量作业成千上万个Pod时其丰富的插件链如gang, drf, binpack可能会增加单次调度决策的计算时间。但在设计上Volcano针对批量场景做了优化如支持批量的调度周期整体吞吐量可以很高。对于中小规模集群性能差异感知不强在超大规模集群下需要根据实际负载对调度器参数进行精细调优。稳定性与成熟度Kueue作为K8s官方SIG项目其开发流程和API设计非常严谨与Kubernetes核心版本的兼容性最好。目前处于beta阶段API相对稳定适合在寻求稳定、长期兼容性的环境中使用。Volcano是CNCF孵化项目在AI、批量计算领域经过了大规模生产验证如华为云、腾讯云等成熟度很高。但其API尤其是vcjob独立于K8s核心API未来如果K8s社区在批量作业方面有重大演进可能需要适配。不过其社区活跃迭代速度快。运维复杂度Kueue运维简单。组件少逻辑清晰问题排查通常围绕“配额是否足够”、“队列绑定是否正确”、“集成控制器是否正常工作”展开。监控主要关注Queue的Pending Workload数量和资源使用率。Volcano运维复杂度更高。你需要维护一整套调度器组件理解其调度插件的工作原理。出现问题可能需要分析scheduler的详细日志、查看PodGroup状态、检查调度器配置等。监控维度也更多包括各队列的作业吞吐量、调度周期时长、抢占次数等。监控与可观测性 两者都提供了丰富的Metrics可以集成到Prometheus中。Kueue提供如kueue_pending_workloads、kueue_admitted_workloads、kueue_clusterqueue_reserved_workloads等指标清晰反映队列压力和配额使用情况。Volcano指标更丰富如volcano_job_status、volcano_queue_status、volcano_scheduler_action_duration_seconds各个调度动作耗时、volcano_scheduler_pod_group_status等便于深入分析调度性能和作业状态。6. 选型决策指南与典型场景分析看到这里你应该对两者有了比较全面的认识。最后我总结一个选型决策树和典型场景帮你做出最终选择。决策逻辑你的核心痛点是否是“组调度”Gang Scheduling是- 优先考虑Volcano。这是它的核心优势其他方案难以替代。否- 进入下一步。你是否需要作业间复杂的依赖调度DAG是且希望调度器原生支持 - 选择Volcano。否或依赖关系可由上层工作流引擎Argo, Airflow管理 - 进入下一步。你是否希望改动最小仅解决多租户资源公平性问题是- 选择Kueue。它侵入性低概念简单。否你愿意接受一定改动以获得更强大的调度能力 - 进入下一步。你的团队技术栈是否与某个生态强绑定重度使用Kubeflow、TensorFlow/PyTorch Operator等AI框架 -Volcano的集成通常更深入、更成熟。环境以通用K8s Job、Argo Workflows为主 -Kueue的适配可能更轻快。典型场景分析场景一大型互联网公司算法平台需求数百个算法工程师同时提交训练任务任务需要多卡GPU必须保证一个任务的多个Pod同时启动组调度。任务有优先级高优研究任务可以抢占低优常规任务。选型Volcano。组调度和抢占是刚需Volcano提供了开箱即用的解决方案。其与Kubeflow等生态的集成也能简化平台搭建。场景二企业级数据分析集群需求多个业务部门金融风控、用户画像、报表生成共享一个集群。需要保证每个部门有固定的资源配额CPU/内存防止一个部门的巨量查询挤占其他部门资源。作业主要是Spark on K8s或Flink Job。选型Kueue。核心诉求是资源隔离和公平共享。Kueue的队列配额模型直观易懂对现有的Spark/Flink作业只需添加一个队列标签即可接入改造成本极低。场景三高校或科研机构的HPC混合集群需求集群同时运行传统MPI科学计算任务和新兴的AI训练任务。资源类型多样CPU、GPU、大内存节点。需要灵活的资源池划分并允许在池资源空闲时被其他池借用。选型可以结合评估。如果MPI任务也需要组调度特性Volcano更合适。如果主要是配额管理Kueue的ResourceFlavor和跨队列借用机制能很好地满足需求。可能需要做概念验证PoC来测试两者对MPI作业框架如KubeFlow MPI Operator的支持度。最后的建议在做技术选型时不要只看功能列表。拿出一个最具代表性的工作负载分别用Kueue和Volcano做一次完整的概念验证PoC。从作业提交、队列等待、资源分配到最终完成完整走一遍流程。观察控制台、查看日志、分析监控指标。这个实践过程能帮你最直观地感受两者的差异以及它们与你们现有运维体系的契合度从而做出最稳妥的决定。

相关新闻

建设银行网站怎么登录密码全攻略:新手必看与常见问题深度解析

建设银行网站怎么登录密码全攻略:新手必看与常见问题深度解析

在这个数字化飞速发展的时代,网上银行早已不再是新鲜事物,而是我们日常生活中不可或缺的一部分。无论是缴纳水电煤费用、转账汇款,还是购买理财产品、查询账单,手机银行和网上银行都为我们提供了极大的便利。然而,对于那些第一次接触建设银行网银,或者很久没有登录过的朋…

2026/8/6 7:04:09 阅读更多 →
预算3000到8000元三防平板电脑怎么选?高性价比机型推荐与避坑

预算3000到8000元三防平板电脑怎么选?高性价比机型推荐与避坑

预算3000到8000元三防平板电脑怎么选?高性价比机型推荐与避坑说句实在话,3000到8000元这个区间,是三防平板最主力也最容易买错的消费段。买便宜了,防护和性能跟不上现场;买贵了,又容易为一堆用不上的配置买…

2026/8/6 7:04:09 阅读更多 →
LangChain Agent 流式输出:stream_mode=“values“ 数据结构解析

LangChain Agent 流式输出:stream_mode=“values“ 数据结构解析

通过 create_agent() 可以创建 Agent 对象。创建后的 Agent 支持两种常见执行方式: invoke():等待 Agent 执行完成,一次性获得最终结果。stream():在 Agent 执行过程中,逐步获得运行状态。 本文主要介绍 Agent 的流式…

2026/8/6 7:04:09 阅读更多 →

最新新闻

计算机毕业设计之基于Spring Boot的学生读书笔记共享系统

计算机毕业设计之基于Spring Boot的学生读书笔记共享系统

当下社会,信息技术充斥社会各个领域,已融入人们生活的点滴,日常中人们管理信息、办理业务、购买商品等都可以网络线上进行,快速而又便利,特别是随着移动互联网时代的到来,更是让人们随时享受着网络给带来的…

2026/8/6 7:51:38 阅读更多 →
Unity WebGL数字孪生中实时视频流集成:AVProVideo与RTSP代理实战

Unity WebGL数字孪生中实时视频流集成:AVProVideo与RTSP代理实战

1. 项目概述与核心价值最近在做一个智慧工厂的数字孪生项目,客户要求在Web端的三维场景里,能实时看到关键工位的监控画面。这听起来简单,不就是把摄像头视频流怼到Unity的UI上嘛?但真上手才发现,从海康威视的摄像头到U…

2026/8/6 7:51:37 阅读更多 →
计算机毕业设计之基于Spring Boot的学生日常行为评分管理系统设计与实现

计算机毕业设计之基于Spring Boot的学生日常行为评分管理系统设计与实现

随着教育信息化的不断推进,学生日常行为管理逐渐成为学校管理的重要组成部分。传统的学生行为管理方式主要依赖于人工记录和评估,这种方式不仅效率低下,而且主观性强,难以满足现代教育的需求。因此,开发一套自动化、智…

2026/8/6 7:51:37 阅读更多 →
145、飞控中的神经网络部署:TinyML与Edge AI

145、飞控中的神经网络部署:TinyML与Edge AI

飞控算法从入门到精通(145):飞控中的神经网络部署:TinyML与Edge AI 一、从一次炸机说起 去年夏天,我在调试一架四轴飞行器的避障功能。传统方案用的是超声波+光流,但遇到透明玻璃墙就翻车——飞机直直撞上去,桨叶碎了一地。当时团队里有人提议:“要不试试用摄像头跑个…

2026/8/6 7:51:37 阅读更多 →
浙江省尖兵领雁计划申报答辩 PPT 制作五大注意事项

浙江省尖兵领雁计划申报答辩 PPT 制作五大注意事项

尖兵领雁计划属于浙江省重点人才工程,评审重点聚焦创新价值、团队实力、落地可行性、产业贡献,答辩 PPT 区别于普通项目汇报,讲究逻辑凝练、贴合浙江政策导向,以下五大核心要点直击评审痛点:一、精准锚定申报定位&…

2026/8/6 7:51:37 阅读更多 →
LED开路保护器原理与应用:如何解决灯串“一损俱损”难题

LED开路保护器原理与应用:如何解决灯串“一损俱损”难题

1. 项目概述:当“守护灯火”成为一门硬核技术 最近在逛一些硬件开发社区和电子元器件分销商的网站时,一个产品标题引起了我的注意:“Keeping the Lights On: A New ‘Open LED Protector’ from Littelfuse”。直译过来就是“保持灯火通明&am…

2026/8/6 7:50:37 阅读更多 →

日新闻

深入解析LimboAI C++内核:架构设计与性能优化实战

深入解析LimboAI C++内核:架构设计与性能优化实战

1. 项目概述:为什么我们需要深入LimboAI的C内核?如果你是一名使用Godot引擎的游戏开发者,尤其是对AI行为逻辑有较高要求的项目,那么LimboAI这个名字你大概率不会陌生。它作为Godot 4生态中一个备受瞩目的行为树与状态机插件&#…

2026/8/6 0:00:06 阅读更多 →
Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

1. 项目概述与核心思路大家好,我是老张,一个在游戏开发一线摸爬滚打了十多年的老码农。今天咱们接着聊《空洞骑士》风格2D动作游戏的Demo制作。上一期我们搭好了基础框架,处理了角色移动和碰撞,这一期,我们要让游戏世界…

2026/8/6 0:00:06 阅读更多 →
被动防火门市场前景发展趋势

被动防火门市场前景发展趋势

被动防火门依靠材质结构、密闭构造阻隔烟火蔓延,无需电控启动,是建筑被动消防系统核心构件,行业依托新规管控、城市更新、工业安全升级迎来稳定扩容,整体朝着合规化、专项化、低碳化、智能化方向发展。现阶段 GB12955‑2024 新版国…

2026/8/6 0:00:06 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/5 15:00:43 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/5 13:13:56 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/5 21:00:14 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →