← 中文资源

简体中文版本

模块化单体

模块化单体是单一部署物但强制模块边界——显式公共 API、禁止跨模块摸库——不付分布式税就拿到微服务的解耦收益。

阅读英文原文

概念定义

微服务有用的部分是“限界上下文加显式契约”,昂贵的部分是“分布”。模块化单体保留前者、拒绝后者,一个进程内拿到边界与契约的全部好处。

工作机制

模块封装领域与数据;跨模块访问只走公共接口——仍是进程内调用,但跨的是 CI 依赖检查强制的架构边界;模块自有的表配 schema 访问规则。事务一致性留在本地,这是相对分布式最大的简化。

使用场景

中小团队、可干净切分的领域、垂直扩容就能满足的规模。抽取路径保留:某模块 API 变热可以日后成服务,模块 API 就是现成接缝。

常见误区

有文件夹不等于模块化:没有规则的目录会退化成大泥球;共享库 schema 会重建模块要防止的耦合。边界侵蚀是渐进的——一次顺手的 import、一张共享表,模块线就成了虚构,所以强制必须自动化。“团队守纪律”不可持续,招聘扩张的那一刻纪律就稀释。进程内调用还诱使同步链条过长——即使单体也要在模块内部设计异步接缝。