模块说明
Molan Cloud 采用 Maven 多模块结构,便于开发和维护。
整体结构
molan-cloud/
├── backend/
│ ├── core/ # 双模驱动核心库(单模块,按包划分能力)
│ ├── apis/ # API 接口定义(Feign 接口)
│ ├── base-service/ # 基础服务(用户/角色/菜单/文件/消息/任务)
│ ├── knowledge-service/ # 知识库服务(RAG)
│ ├── xiuxian-service/ # AI 修仙服务
│ ├── gateway-service/ # 微服务网关
│ └── standalone-service/ # 单体模式启动入口
├── frontend/ # Vue 3 前端
├── autotest/ # 自动化测试(登录 / 权限等主线)
├── scripts/ # 部署脚本、Docker、SQL、Nacos 配置
├── converter/ # 文档转换服务
└── wiki/ # 文档站设计理念
服务按业务域聚合:base-service 整合系统管理、文件、消息、任务;knowledge-service / xiuxian-service 专注 AI。单体用 standalone-service 启动,微服务用 gateway-service + 各服务独立部署。
模块详解
1. 核心库 (core)
职责: 双模内核与通用能力(RPC、事件、锁、文件、加解密、数据源、Spring 增强等)。
业务模块通过同仓 Maven 模块依赖 core,无需额外引入外部包。
能力说明见 Molan Core 介绍。
2. API 模块 (apis)
职责: 定义服务间 Feign 接口与 DTO。
特点:
- 接口与实现分离
- 支持单体 / 微服务双模
- 统一 API 约定
示例:
java
@FeignClient(
name = "${molandev.service-name.base-service:base-service}",
contextId = "sysUserApi",
path = "/feign/user"
)
public interface SysUserApi {
@GetMapping("/admin")
UserDto getAdmin(@RequestParam("id") String id);
}接口即服务
通过 core 的 RPC 能力,Feign 在单体下自动走本地调用,微服务下走远程 HTTP,业务代码无需感知。
3. 基础服务 (base-service)
职责: 系统管理、文件、消息、任务等基础能力。
| 功能 | 包路径 | 说明 |
|---|---|---|
| 系统管理 | sys/ | 用户、角色、菜单、部门、字典 |
| 文件管理 | file/ | 上传下载、回收站 |
| 消息管理 | msg/ | 站内信、WebSocket |
| 任务调度 | task/ | 定时任务 |
微服务模式下独立启动;单体模式下由 standalone-service 合并拉起。
4. 知识库服务 (knowledge-service)
职责: 文档摄入、向量检索、RAG 问答。
依赖中间件:向量库(如 Milvus)、可选 ES 等,详见 知识检索文档。
5. AI 修仙服务 (xiuxian-service)
职责: 多 Agent 对话、工具调用、权限与技能体系。详见 AI 集成。
6. 网关 (gateway-service)
职责: 微服务入口、鉴权、路由。仅微服务模式需要。
7. 单体入口 (standalone-service)
职责: 合并各业务服务,以单进程启动,配置 molandev.mode=standalone。
bash
mvn spring-boot:run -pl standalone-service -f backend/pom.xml8. 脚本与部署 (scripts/)
| 目录 | 说明 |
|---|---|
scripts/docker/ | 各中间件 docker-compose |
scripts/sql/ | MySQL / Postgres 初始化脚本 |
scripts/cloud/ | Nacos 配置样例、云部署 compose |
scripts/standalone/ | 单体部署辅助配置 |
依赖关系(示意)
standalone / gateway(入口)
↓
base / knowledge / xiuxian(业务)
↓
apis(Feign 契约)
↓
core(双模内核)