一个进程跑多个应用
来源:andersmurphy.com — 2026-11-09
📋 概述
作者反驳「性能对多数项目没用」的流行说法:单个进程可以按整机规格一次性配置,然后在这个进程里跑任意多个应用,共享同一个 JVM、GC、缓存、缓冲区、HTTP 服务器、证书管理与事件循环。他把应用抽象成「域名、数据库、路由、批处理函数」四件套,用 Clave 在进程内完成 ACME 证书签发,于是不再需要反向代理;部署退化为 scp 一个 uberjar,重启快到与一次网络抖动无法区分。
🔑 核心要点
- 多进程会重复固定开销:多份堆、多个 JIT、多个 GC、多套事件循环线程与字节缓冲
- 若这些固定开销共 500MB,四个应用就白白多占 1.5GB
- 单进程可按整机规格配置一次,应用数量随性能线性增长,不必各自定尺寸
- Clave 用纯 Clojure 在进程内做 ACME 证书签发与续期,顶替反向代理的证书职责
- 部署就是一个 uberjar;作者调侃「如果一次部署和网络抖动无法区分,应用真的下线过吗」
💡 金句
性能让你可以在那一个进程里,想跑多少个应用就跑多少个应用。
👍 0
👎 0
← 返回 Lobsters 首页