AegisCloud 微服务工程搭建:父子工程多模块初体验
在微服务架构中,一个清晰的多模块项目结构是高可维护、高扩展的基础。
在 AegisCloud 项目里,我完成了 父子工程搭建 + 多模块 Spring Boot 骨架跑起来,为系统的自治闭环能力打下了坚实基础。
通过这次实践,我总结了多模块化设计的几个关键价值:
- 职责清晰:每个模块单一功能,业务逻辑与自治闭环完全分离
- 易扩展:新模块可以轻松接入父工程管理
- 闭环可落地:MAPE-K 自治闭环在工程上有明确映射
- 便于演示与测试:独立启动、独立调试,每个模块都可单独验证
接下来,我将详细分享 AegisCloud 的多模块工程设计理念、模块划分、依赖关系以及父工程管理思路,让你一眼就能看懂如何在微服务自治系统中落地多模块架构。
1. 父子工程设计理念
在 AegisCloud 中,我采用了 父子工程 + 多模块化 的结构,让每个模块职责清晰、独立可控:
- 父工程(aegiscloud):统一管理整个项目的依赖版本、Maven 插件和构建配置,是整个工程的“大脑”。
- 公共模块(aegis-common):存放 DTO、工具类、常量等共享内容,为业务和自治模块提供基础支持。
- 业务模块(aegis-service-business):模拟业务逻辑,可独立启动,用于测试自治闭环的作用。
- 网关模块(aegis-gateway):统一入口,负责请求路由和限流,可独立运行。
- 自治模块(Observer / Analyzer / Planner / Executor / Knowledge):未来各阶段中陆续接入,实现可观测、分析、策略生成、自愈执行及知识沉淀。
- 演示模块(aegis-demo):快速展示系统闭环效果,便于调试与演示。
即使当前没有完整业务逻辑,这样的模块划分已经保证了系统 独立开发、可扩展、易维护,为后续微服务自治闭环落地打下了坚实基础。
2. 父子工程最小实现示例
父工程 pom.xml 片段:
1 | <modules> |
- 每个模块都可以独立启动
- 公共模块作为依赖被各子模块引用
- 父工程统一管理依赖版本、插件配置和构建流程
3. 业务模块启动类示例
1 | package com.aegiscloud.business; |
说明:
@SpringBootApplication声明这是一个 Spring Boot 应用,负责自动装配和启动。main方法允许模块独立运行,用于本地调试或集成测试。- 公共模块(aegis-common)可被引用,实现模块间解耦。
这种独立启动的设计,使每个模块都可以单独开发、测试和调试,同时保证整个 AegisCloud 系统的模块化和可扩展性。
4. 网关模块最小启动示例
1 | package com.aegiscloud.gateway; |
关键点说明:
- 独立端口:确保和业务模块不冲突,可单独运行
- 健康检查:通过
/actuator/health测试模块启动成功
application.yml 配置示例:
1 | server: |
通过独立启动的网关模块,我们可以快速验证请求入口、健康检查和后续路由功能,为自治闭环的接入打下基础。
5. 模块依赖图示意
graph TD
A[AegisCloud 父工程] --> B[aegis-common]
A --> C[aegis-service-business]
A --> D[aegis-gateway]
C --> B
D --> B
当前阶段,业务模块和网关模块都依赖公共模块,但自治模块尚未接入。
6. 测试结果示例
业务模块启动控制台:
1 | 2026-01-09 20:15:23.456 INFO 12345 --- [ main] o.s.b.SpringApplication : Started BusinessServiceApplication in 2.345 seconds |
网关模块 /actuator/health 返回示意:
1 | { |
7. 了解 Actuator:微服务健康自检利器
在微服务中,健康检查和可观测性是最基础的自治能力。即使目前业务逻辑很少,我们也要保证每个模块都能被外部系统或监控平台“看到状态”。这就是 Spring Boot Actuator 的价值。
7.1 Actuator 作用
- 提供模块运行状态、指标、健康检查和信息暴露接口
- 常用端点:
/actuator/health:模块健康状态(UP / DOWN / OUT_OF_SERVICE)/actuator/info:模块信息(版本、环境等)/actuator/metrics:指标数据(请求数、内存使用等)/actuator/beans:应用 Bean 信息
在 AegisCloud 中,Observer 模块后续会采集这些指标,AI 分析异常,而 Gateway 可以直接用 Actuator 做请求前置健康判断。
7.2 最小配置示例
1 | management: |
访问:
1 | http://localhost:8080/actuator/health |
返回:
1 | { |
7.3 为什么现在就加?
- 验证模块启动:确认模块能独立运行
- 后续可观测能力打基础:Observer 模块可以直接利用 Actuator 数据采集系统状态
- 提升自治闭环可信度:闭环要“知道系统健康”,Actuator 是最简单、开箱即用的实现方式
这一步虽然简单,却是自治系统工程化落地的第一块基石:模块能自检,系统才可感知状态,才能走向真正的自治闭环。
8. 小结
通过这次实践,AegisCloud 已经完成了:
- 父子工程 + 多模块化骨架
- 业务模块和网关模块独立启动
- 最小可观测能力(Actuator)就绪
- 模块间依赖清晰,自治闭环可落地
接下来,自治模块(Observer / Analyzer / Planner / Executor / Knowledge)将陆续接入,多模块骨架保证每个模块独立开发、可测试,同时 MAPE-K 自治闭环在工程上落地顺畅。
