技术架构
系统架构图
┌──────────────────────────────────────────────────────────┐
│ 客户端层 │
│ Web 管理后台 / App / 移动端 │
└───────────────────────┬──────────────────────────────────┘
│ HTTPS / WebSocket
┌───────────────────────▼──────────────────────────────────┐
│ Spring Cloud Gateway │
│ 统一入口 · JWT 鉴权 · 请求路由 · 限流 │
└────┬──────┬──────┬──────┬──────┬──────┬──────┬──────────┘
│ │ │ │ │ │ │
┌───▼──┐ ┌▼────┐┌▼────┐┌▼────┐┌▼────┐┌▼─────┐┌▼──────┐
│用户 │ │网关 ││数据 ││应用 ││扩展 ││定时 ││公共 │
│服务 │ │管理 ││服务 ││服务 ││Hook ││任务 ││服务 │
│user │ │mgmt ││data ││app ││exhook││xxl-job││common │
└──┬───┘ └──┬──┘└──┬──┘└──┬──┘└──┬──┘└──┬──┘└──┬───┘
│ │ │ │ │ │ │
┌───▼────────▼───────▼───────▼───────▼───────▼───────▼───┐
│ 基础设施层 │
│ MySQL 8 │ Redis │ InfluxDB │ Nacos │ EMQX │
└────────────────────────┬────────────────────────────────┘
│ MQTT
┌──────▼──────┐
│ 边缘网关设备 │
│ (Go-HTTP) │
└─────────────┘
技术选型
| 类别 | 技术选型 | 说明 |
|---|---|---|
| 基础框架 | Java 17 + Spring Boot 3.0.2 | 最新 LTS 版本 |
| 微服务治理 | Spring Cloud Alibaba 2022 | Nacos 服务注册与配置中心 |
| API 网关 | Spring Cloud Gateway | 统一入口、鉴权、路由 |
| 服务调用 | OpenFeign | 微服务间负载均衡调用 |
| 业务数据库 | MySQL 8.0 | 结构化业务数据存储 |
| 缓存 | Redis | 会话缓存、热点数据加速 |
| 时序数据库 | InfluxDB | 海量时序数据存储与查询 |
| 消息中间件 | EMQX | MQTT Broker,万级设备接入 |
| 定时任务 | XXL-Job 3.0 | 分布式任务调度 |
| API 文档 | Knife4j / SpringDoc OpenAPI 3 | 在线接口文档与调试 |
| Excel 处理 | EasyExcel 3.3 + Apache POI 4.1 | 批量导入导出 |
| RPC 框架 | gRPC | 扩展钩子模块远程调用 |
| AI 集成 | 阿里云 DashScope SDK | 通义千问大模型集成 |
| 第三方支付 | 微信支付 SDK | 支付相关功能 |
| 短信服务 | 阿里云短信 | 用户通知与验证码 |
微服务模块说明
| 模块 | 名称 | 职责 |
|---|---|---|
| user | 用户服务 | 用户认证、角色权限、项目管理 |
| mgmt | 网关管理 | 网关生命周期、设备管理、云组态、远程运维 |
| data | 数据服务 | 数据接入、存储、查询、数据广播 |
| app | 应用服务 | App 移动端接口 |
| exhook | 扩展 Hook | gRPC 远程钩子,第三方系统对接 |
| xxl-job | 定时任务 | 分布式定时任务调度 |
| common | 公共服务 | 公共工具类、基础服务 |
| gateway | API 网关 | 统一鉴权、路由分发、限流熔断 |