舱壁模式在 Node.js 里怎么落地:四道隔离与四组实测
· 阅读需 13 分钟
舱壁模式原理极简,属于 “知道了就觉得理所当然” 的知识;但它属于典型的「简单但极易被忽略」的稳定性手段。 就像保险丝,原理一点不复杂,但是不装,电路一过载就烧设备。
很多稳定性模式都是这个味道:思想朴素,价值巨大,难在主动落地,而不是理解。
舱壁(Bulkhead)来自造船:把船体隔成若干水密舱,一个舱进水,船不沉。搬到软件里,它只有一句话——**给资源划边界:让 A 的故障、拥堵、突发,物理上占不到 B 的资源。**但这句话在 Node.js 里的落点和 Java 生态很不一样。Java 谈舱壁,默认是「线程池隔离」(Hystrix 那套);Node 是单线程的,所以除了连接池,你还得隔离「事件循环」本身——一个 JSON.parse 大字符串或一次同步循环,就能把整个进程的所有接口一起拖下水。
这篇把 Node 里的四道舱壁逐个落成代码 + 本机实测。四组实验的效果都很干净(最夸张的一组是 1416 ms → 2.3 ms)
