☰
第05篇-工程骨架-多模块Maven与微服务边界怎么切
2026/9/28 20:26:33 网站建设 项目流程

工程骨架:多模块 Maven 与微服务边界怎么切


文章目录

  • 工程骨架:多模块 Maven 与微服务边界怎么切
    • 引言:第一行代码之前,先想清楚边界
    • 一、为什么是"多模块单体"起步,而不是直接微服务
    • 二、模块划分:11 个模块,一条业务链
      • 原则一:按业务域切,不按技术层切
      • 原则二:高频流量域与强一致域分开
      • 原则三:对外对接域独立成模块
      • 边界判定矩阵:哪些边界由业务一致性决定
      • 什么场景才值得拆成微服务
    • 三、父 POM:版本只出现一次
    • 四、统一返回体:全平台就一个返回结构
    • 五、模块依赖检查:边界有没有被守住,让 POM 说话
    • 六、配置清单与完整启动路径
    • 七、单体优先、按需拆分:模块化单体的实证
    • 八、多仓库世界的本地联调
    • 九、现实对照:一个微服务平台为"关联"付的胶水成本
    • 结语:骨架搭好,该接设备了

引言:第一行代码之前,先想清楚边界

认知篇攒下了领域模型(第 04 篇),但从这篇开始要动真格写工程了。写一个虚拟电厂平台和写普通 CRUD 系统的第一个区别,不是技术栈,而是边界——这个平台要同时跟三类"外部世界"打交道:

  • 向下,接成千上万台异构设备(MQTT/CoAP,协议杂、断连多);
  • 向上,接电网官方系统(负荷管理/调度自动化/交易系统,协议硬、时延刚性);
  • 向内,跑核心业务闭环(评估→聚合→调度→结算,强一致性)。

这三种流量的特征完全不同:设备接入层高并发长连接、业务服务层重事务重逻辑、对外对接层重协议重安全。如果把它们揉进一个工程,第一波设备风暴就会拖垮结算服务——这是工程上反复交过的学费。

所以本篇解决两个问题:工程骨架怎么搭(多模块 Maven),模块边界画在哪(按业务域而非技术层切分)。文末附有已验证可启动的最小骨架,mvn spring-boot:run一条命令拉起。

一、为什么是"多模块单体"起步,而不是直接微服务

先说一个反直觉的决策:专栏示例工程openvpp-demo采用Maven 多模块 + 单体启动的形态,而不是上来就 Spring Cloud(微服务开发全家桶)。

原因有三:

  1. 教学效率:读者一条命令mvn spring-boot

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询