MateCloud 5.0.8 — 一套代码,自由生长
你不该为「单体,还是微服务」而纠结。
你只需要决定——什么时候,用哪一种。
🚀 这一次,部署不再是枷锁
过去,单体与微服务是两条岔路:选错了,就得推倒重来。
今天,它们成了同一套代码的两种姿态。
一个开关 mate.rpc.mode,决定一切:
local 单体 |
dubbo 微服务 |
|
|---|---|---|
| 启动 | 一个 JAR、一条命令、8 秒 | 多进程集群 |
| 依赖 | 不需要 Nacos / Dubbo / RabbitMQ | 注册中心 + RPC + 网关 + MQ |
| 端口 | 9010(与网关一致,前端零改动) | 网关 9010 + 各服务 |
| 适合 | 个人项目、开发联调、中小团队 | 高并发、分布式、多团队 |
前端零改动。数据库无需迁移。
单体与微服务甚至能共用同一个库——Flyway 会自动「认领」已存在的表结构,而不是莽撞地重建。
从一个人的 Demo,到一个团队的中台,再到千万级的分布式系统——
你不必更换框架,你只是……长大了。
🧬 这套双模,是怎么炼成的
不是简单地「关掉 Dubbo」。我们把每一处会随部署形态变化的细节,都打磨成了可插拔的优雅设计:
- 模块库化打包 —— 业务模块同时产出「瘦库」(被单体依赖) 与「可运行胖包」(微服务部署),鱼与熊掌兼得;
- DDD 端口/适配器 —— 抽出
RolePermissionResolverPort,SaTokenIssuer两种模式共用同一份代码,零重复; - 域事件进程内分发 —— 单体下无需消息中间件,Spring 事件即可;切到微服务,自动切换为 Dubbo 广播;
- Flyway 自动领养 —— 单体首启自动继承微服务已迁移的 schema,
No migration necessary; - 配置收口 —— 一个
mate-infra-local.yml收纳全部单体差异,主配置干净如初。
完整设计:
docs/rfcs/045-monolith-microservice-dual-mode.md
🏛 站在巨人的肩上
- Java 21 · Spring Boot 4.0.7 · Spring Cloud 2025.1.2 · Spring Cloud Alibaba · Dubbo 3.3.6 —— 全部用上最新、最快的。
- DDD 四层架构 —— 领域层零框架污染,业务逻辑纯粹得能直接朗读。
- 20+ 即插即用 Starter —— 缓存(Caffeine+Redis 两级)、分布式锁、限流、幂等、审计、数据权限、多租户、文件(MinIO)、Excel、网关治理……需要什么,加一行依赖。
- 开箱即用 —— Sa-Token 认证、MyBatis-Plus、Redisson、MapStruct、Smart-Doc、Flyway 迁移,一应俱全。
✨ 还有一件事
MateCloud 原生会「思考」。
给任意一个方法标上 @Tool,它就成了 AI 可以调用的能力。
REST、流式对话、命令行、甚至 MCP 协议——
你的业务,从第一天起,就为 AI 时代准备好了。
MateCloud 5.0.8 · 让架构追随业务,而不是业务迁就架构。