架构全景
接入层 CLIENT
Vue 3 Admin · :3000
Element Plus · Vite
移动端
H5 · 小程序
桌面端
Electron
三方系统
OpenAPI · Webhook
网关层 GATEWAY
mate-gateway · :9010 Spring WebFlux (Reactor)
Sa-Token 统一鉴权 · 灰度路由 · 限流熔断 · Trace 链路透传 · CORS · 安全响应头
业务服务层 SERVICES · DDD
mate-auth · :9020
认证 · 登录 · Token
mate-system · :9030
RBAC · 字典 · 配置 · AI
mate-notice · :9050
短信 · 邮件 · 站内信
业务服务(可扩展)
mate new module
Dubbo RPC(同步服务间调用)
服务内部统一 DDD 四层:
trigger 触发层
›
application 应用层
›
domain 领域层 · 零框架
›
infrastructure 基础设施
能力层 STARTERS · 即插即用
核心 · 默认引入
web · ds · cache · nacos
rpc · sa-token · monitor
业务 · 按需引入
mq · job · security · file
excel · tenant · sms · sso · menu
高级 · contrib
ai · model · gray · flow · rule
seata · sentinel · sharding · test
基础设施层 INFRASTRUCTURE
MySQL 8.0
JDBC · Flyway
Redis 7
Redisson · 缓存/锁
RabbitMQ 3.13
领域事件 · AMQP
Nacos v3.2
注册 · 配置中心
MinIO
对象存储 · S3
可观测性
Actuator · Prometheus
Micrometer Tracing · 链路
核心设计原则
mate-common 只包含纯类型(DTO、枚举、异常),零自动配置。不会因为引入公共包而带入不需要的依赖。
每个 Starter 封装一个完整的横切关注点。业务模块通过 Maven 依赖引入 Starter,自动配置即刻生效,无需手动写 @Bean。
所有业务模块遵循统一的 DDD 四层结构。Domain 层零框架依赖,确保业务逻辑的纯粹性。
写操作通过 CommandService(带 @Transactional),读操作通过 QueryService(接口 + 实现),严格分离。
配置体系 确保服务启动文件只需 ~15 行,环境差异通过 Nacos 动态管理。
服务通信
- 同步调用:网关 → 服务走 HTTP,服务间走 Dubbo RPC
- 异步通信:RabbitMQ 消息队列 + 领域事件
- 服务发现:Nacos
- 配置中心:Nacos