跳到主内容
快讯直播
AI智模界
AI 词典

舱壁隔离(Bulkhead):别让次要功能拖垮全站

一句话定义

舱壁隔离(Bulkhead)是一种容错设计:把线程、连接、并发额度、GPU 时长这类资源按功能或租户切成若干互不连通的小池子,任何一个池子被耗尽,都不会波及其他池子。

名字来自船体

货轮的船体被一道道水密舱壁分成许多隔舱。某段船壳破了,海水只灌满那一个舱,船整体还浮着,能开回港口。软件里的舱壁是同一思路:不指望每个功能都不出错,只保证出错时损失被关在一个舱里。

一个具体的翻车现场

某个 LLM 应用的核心是对话,边上还挂着「一键生成周报」「导出全量数据」「后台重跑评测集」。如果这些功能共用一个模型 API 的并发配额、一个数据库连接池,那么某位用户点了全量导出,长事务把连接占满;或者批处理把并发打满,核心对话就开始超时。日志上写的是「导出功能的 bug」,用户感受到的却是「整个产品挂了」。舱壁隔离要解决的就是这个错位。

怎么切

常见的切分维度有四种:按功能(核心对话链路 vs 周边工具)、按租户(免费用户 vs 大客户)、按下游依赖(每个外部服务各自的连接池)、按优先级(可降级的活丢进异步队列)。实现可以从轻到重:进程内给不同接口配独立的信号量和队列;或者独立部署、独立命名空间,用 Kubernetes 的 resource requests/limits 和配额做硬边界。共享底层资源时,用配额(quota)代替抢占;具体行为和字段以官方文档为准。

和相邻概念的区别

概念主要管什么出手时机
舱壁隔离资源分池,限定每类功能最多能用多少事前,常驻生效
限流(Rate Limiting)控制进入系统的请求速率事前,卡在入口
熔断(Circuit Breaker)下游持续失败时直接拒绝,不再空等事中到事后
超时(Timeout)单次调用最多等多久事中

限流管「进来多少」,超时管「等多久」,熔断管「还调不调」,舱壁隔离管「谁能用哪部分资源」。四者常一起用,但只有舱壁隔离能阻止一个功能把公共资源吃光。

对从业者的实际意义

隔离换来的是稳定性,付出的是利用率:池子分开后不能互相借资源,峰值时可能一边闲着、一边排队。所以关键是分级,不是平均分——核心链路给足,次要功能允许排队、降级、异步化。划分粒度按「故障爆炸半径」来定,而不是按代码模块来定。设计时问自己一句:如果这个功能明天被一个用户疯狂点击,谁会跟着一起倒?那些会一起倒的东西,就该被舱壁隔开。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。