用了好多年的 Nest.js 了,大概从 6.x 用到现在的 10.x ,也没什么大变更。
选 Nest.js 看中的是 TypeScript 优先,然后集成了 class-validator 可以开箱即用。
其它自己集成的什么 http client 、数据库、缓存、消息队列、不喜欢就自己糊一个。
至于它的依赖注入,除了控制器和模块这一层,service 层你都可以不用依赖注入,完全走静态函数,反正 js 这种脚本语言可以在运行时修改 class 的 method ,mock 起来非常简单。
最大规模试过在 30 个 4c8g 的 contabo vps 上用 k3s 部署爬虫,套个 rancher 面板,部署一年多,稳如狗,用 DaemonSet 跑网络 IO 相关的操作,全流式操作,内存占用两百多兆,每个节点每月 32T 流量吃到饱。分析计算用 Deployment ,完全的 IO 和计算分离。
至于 web api ,现在用 Nest.js + Supabase ,日常内存占用也就 90MB 左右,需要事务那就换 Prisma ,内存占用高一些,150MB 左右。
结合 pkg 可以把项目打包成单个二进制文件塞到容器里,一般就 70MB 左右,冷启动贼快,丢到 1c1g 的容器里都算是打很富裕的仗了。
至于现在,我在把 Nest.js 的程序结合 AI
迁移到.Net 上…… 现在迁移了一个应用,确实很香。