Skip to content

MateCloud

MateCloudSpring BootSpring CloudSpring AIVueJavaLicensePRs Welcome

系统说明

  • MateCloudAI 原生 · 云原生的 DDD 微服务脚手架,基于 Spring Boot 4 + Spring Cloud 2025 + Dubbo 3 + Spring AI 2.0,单体(mate-monolith)与微服务双形态一键切换
  • 开源版含 网关 / 认证 / 系统管理 / 通知 四个核心服务 + 27 个即插即用 Starter(18 核心 + 9 高级),完整展示 DDD 四层 + CQRS 读写分离。
  • AI 原生:Spring AI 2.0 + @Tool 自动发现 + 会话记忆 + 流式对话,支持 6 个 LLM 提供商(Anthropic / OpenAI / 智谱 / Minimax / DeepSeek / Ollama)。
  • MCP 原生工程闭环(Loop Engineering)mate --mcpmate-cli 与业务 @Tool 暴露为 MCP 工具,让 AI Agent 在「观察 → 推理 → 执行 → 反馈」闭环中操作集群——查服务、调 RPC、生成代码、迁移数据库。
  • 认证基于 Sa-Token(密码 / 短信 / 验证码登录);Docker Compose 一键编排,mate-cli 提供脚手架、Nacos 配置、服务发现、健康检查与代码生成。

设计理念: 最小公共、各司其职、Starter = 即插即用能力。

架构全景

MateCloud 架构全景

接入层 → 网关(:9010)→ 业务服务(auth / system / notice,Dubbo RPC + DDD 四层)→ 能力层 Starter → 基础设施(MySQL / Redis / RabbitMQ / Nacos / MinIO),可观测性(Actuator / Prometheus / Tracing)横切。详见 总体架构文档

界面预览

真实运行截图(前端 admin :3000 + 后端网关 :9010),基于 mate-ui 设计系统。

工作台
工作台 · 概览 / 服务健康
菜单管理
菜单管理 · RBAC 菜单树
角色管理
角色管理 · 菜单 / 数据权限
管理员
管理员 · 分配角色
数据字典
数据字典 · 类型 / 数据
参数配置
参数配置 · 系统键值
身份接入
身份接入 · 企微/钉钉/飞书/LDAP
灰度发布
微服务 · 灰度发布 / 路由测试
登录审计
登录审计 · 日志 / UA / 状态

使用文档

MateCloud 提供了完整的部署与开发文档,涵盖架构设计、Starter 使用、CLI 命令、前端开发和生产部署等内容。

cd mate-ui && pnpm dev:docs # → http://localhost:5174

快速开始

基础环境

  • JDK 21+
  • Maven 3.9+
  • Docker & Docker Compose
  • Node.js 20+(运行 mate-ui 前端时需要)

启动服务

在项目根目录执行完整编译,再构建并启动本地服务栈:

# 1. 编译
mvn clean install -DskipTests
# 2. 启动基础设施(MySQL + Redis + RabbitMQ + Nacos + MinIO)
make infra-up
# 3. 初始化 Nacos 配置
java -jar mate-cli/target/mate-cli.jar config init
# 4. 启动所有服务
make up

服务启动后,通过网关端口 9010 访问后端接口,Nacos 控制台端口为 8848

数据库自动初始化:无需手动建表。mate-system 首次启动时,Flyway 自动执行 db/migration/ 下的迁移(V1.0.0 建表 → V1.0.1 种子数据 → ……),完成建表、 内置账号 admin/admin123、角色、菜单与字典的初始化。每个服务有独立的版本历史表 flyway_history_<module>。详见 数据库迁移菜单配置

启动前端

cd mate-ui
pnpm install
pnpm dev # → http://localhost:3000

默认开发账号:admin / admin123

核心依赖

依赖版本
Java21
Spring Boot4.0.7
Spring Cloud2025.1.2
Spring Cloud Alibaba2025.1.0.0
Spring AI2.0.0
Dubbo3.3.6
MyBatis Plus3.5.16
Sa-Token1.45.0
Redisson4.5.0
Vue3.5
Element Pluslatest
Vitelatest

功能特性

功能说明
DDD 四层架构trigger / application / domain / infrastructure,领域层零框架依赖
CQRS 读写分离CommandService 写 + QueryService 读,职责清晰
微服务 · 单体双形态Spring Cloud + Dubbo 3 RPC + Nacos;mate-monolith 单体一键切换;灰度 · 限流 · Seata
27 个 Starter18 核心 + 9 高级:持久化、缓存、锁、MQ、任务、分片、租户、安全、可观测、AI、测试……
多租户 SaaS行级隔离 / Schema 隔离 / 独立数据源三种模式
AI 原生集成Spring AI 2.0 + @Tool 自动发现 + 会话记忆 + 流式对话 + 6 个 LLM 提供商
MCP 原生工程闭环mate --mcp + 业务 @Tool 暴露为 MCP 工具,AI Agent 闭环操作集群(Loop Engineering)
分布式锁@DistributedLock 注解,Redisson 实现
接口签名@ApiSign 防篡改,HMAC-SHA256 签名验证
限流降级@RateLimit 注解限流 + Sentinel 动态规则
审计日志@AuditLog 自动记录操作日志
数据权限@DataPermission 注解式行级数据过滤
幂等控制@Idempotent 防重复提交
灰度发布Dubbo + Gateway 双链路灰度路由
代码生成CLI 一键生成 DDD 四层代码 + Flyway 迁移
MCP Servermate-cli --mcp,Claude Code / Claude Desktop 直接调用业务工具

模块说明

mate-ui-- Vue 3 前端 (pnpm monorepo)
├── apps/admin-- 管理后台 SPA [3000]
├── apps/docs-- VitePress 文档站 [5174]
└── packages/-- 共享包 (core, hooks, ui, utils)matecloud
├── mate-common-- 纯类型库(零自动配置)
│ ├── mate-base-- BaseEntity, Result, BizException, ErrorCode
│ └── mate-api-- RPC 接口、命令、响应、枚举
├── mate-starters-- 13 个即插即用 Starter(7 核心 + 6 业务)
│ ├── mate-ds-starter-- MyBatis Plus + Druid + Flyway
│ ├── mate-web-starter-- 全局异常 + Jackson + DevTools
│ ├── mate-cache-starter-- Caffeine L1 + Redis L2 + @DistributedLock
│ ├── mate-nacos-starter-- Nacos 注册发现 + 配置中心
│ ├── mate-rpc-starter-- Dubbo RPC
│ ├── mate-sa-token-starter-- Sa-Token(Servlet + Reactor)
│ ├── mate-monitor-starter-- Actuator + Prometheus + Tracing
│ ├── mate-mq-starter-- RabbitMQ + 延迟队列
│ ├── mate-job-starter-- XXL-Job 执行器
│ ├── mate-security-starter-- @ApiSign @RateLimit @AuditLog @Idempotent
│ ├── mate-file-starter-- MinIO 上传/下载/预签名
│ ├── mate-excel-starter-- EasyExcel 导入导出
│ └── mate-tenant-starter-- 多租户(行级/Schema/独立数据源)
├── mate-starters-contrib-- 8 个高级 Starter(按需引入)
│ ├── mate-seata-starter-- 分布式事务
│ ├── mate-sharding-starter-- ShardingSphere 分库分表
│ ├── mate-sentinel-starter-- Sentinel 限流降级
│ ├── mate-gray-starter-- 灰度发布
│ ├── mate-flow-starter-- 轻量工作流引擎
│ ├── mate-rule-starter-- Aviator 规则引擎
│ ├── mate-ai-starter-- Spring AI 2.0 + @Tool + MCP
│ └── mate-test-starter-- Testcontainers + @MateTest
├── mate-gateway-- API 网关 [9010]
├── mate-auth-- 认证服务 [9020]
├── mate-cli-- CLI 工具 + MCP Server
└── mate-biz
├── mate-system-- 系统管理(DDD 示范 + RBAC + 字典 + AI)[9030]
└── mate-notice-- 通知服务(短信/邮件适配器)[9050]

配置说明

  • MateCloud 使用 5 层配置策略,服务的 application.yml 只需约 15 行。
  • 环境变量 → Nacos 服务级配置 → Nacos 共享配置 → classpath 默认值 → 服务入口文件,优先级从高到低。
  • 默认数据库脚本通过 Flyway 自动迁移,业务表前缀 mate_;每服务独立版本线(flyway_history_<module>),详见 数据库迁移文档
  • 包名统一为 vip.mate.*,Starter 包名 vip.mate.starter.*
  • 详细配置策略参见 docs/conventions/config-strategy.md

AI 集成

mate-ai-starter 封装 Spring AI 2.0,提供三大能力:

  1. @Tool 自动发现 — 任何 Spring Bean 方法标注 @Tool 即可被 LLM 调用
  2. 多提供商支持 — 一个环境变量切换 Anthropic / OpenAI / 智谱 / Minimax / DeepSeek / Ollama
  3. MCP Server 桥接 — Claude Code / Claude Desktop 可以直接调用集群中的 @Tool 方法
@Component@RequiredArgsConstructorpublicclassDictAiTools {
privatefinalIDictQueryServicedictQueryService;
@Tool(description = "List all dict entries for a given dictType.")
publicList<DictData> listDictByType(
@ToolParam(description = "Dict type code, e.g. 'user_status'")
StringdictType) {
returndictQueryService.findByType(dictType);
}
}
# CLI 直接对话
java -jar mate-cli/target/mate-cli.jar ai chat "列出所有用户状态字典"# 启动 MCP Server(集成 Claude Code)
java -jar mate-cli/target/mate-cli.jar --mcp

CLI 工具

mate new module mate-order --port 9060 # 新建业务模块(DDD 四层骨架)
mate new aggregate Order --module mate-order # 新建聚合
mate service list # Nacos 注册的服务
mate service health # 健康检查
mate config init # 初始化 Nacos 共享配置
mate gen code --table mate_order # 代码生成
mate ai chat "..."# AI 对话
mate --mcp # 启动 MCP Server

开源共建

开源协议

MateCloud 开源软件遵循 Apache 2.0 协议,允许商业使用,但务必保留类作者、Copyright 信息。

其他说明

  1. 欢迎提交 PR,请基于 dev 分支提交,详见 贡献指南
  2. 欢迎提交 Issue,请写清楚问题现象、开发环境和复现步骤。
  3. 本项目遵循 Contributor Covenant 行为准则
  4. 安全漏洞请参阅 安全策略不要创建公开 Issue。

About

🔥MateCloud是一款基于Spring Cloud Alibaba的微服务架构。目前已经整合Spring Boot 4.0.7、 SpringCloud 2025、Spring Cloud Alibaba 2025、Spring Security Oauth2、Feign、Dubbo、JetCache、RocketMQ等,支持多租户的低代码平台,Saas平台开发套件

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1.7k stars

Watchers

41 watching

Forks

Releases

Packages

Used by

Contributors

Languages