微服务版本开发文档
技术架构概览
点狮微服务版本采用现代化的微服务架构设计,基于 Spring Cloud Alibaba 技术栈,支持高并发、高可用的企业级应用场景。
核心技术栈
mermaid
graph TB
subgraph 客户端层
Web[Vue3 + Element Plus]
App[UniApp 移动端]
Mini[微信/支付宝小程序]
end
subgraph 网关层
Nginx[Nginx 负载均衡]
Gateway[Spring Cloud Gateway<br/>路由|限流|鉴权]
end
subgraph 微服务层
OA[OA办公服务]
CRM[CRM客户服务]
HRM[HRM人事服务]
ERP[ERP进销存服务]
WMS[WMS仓储服务]
AMS[AMS资产服务]
Mall[Mall商城服务]
MP[MP公众号服务]
System[System系统服务]
BPM[BPM工作流服务]
end
subgraph 中间件层
Nacos[Nacos<br/>注册中心|配置中心]
Sentinel[Sentinel<br/>限流熔断]
Seata[Seata<br/>分布式事务]
MQ[RocketMQ<br/>消息队列]
end
subgraph 数据层
MySQL[(MySQL Cluster<br/>分库分表]
Redis[(Redis Cluster<br/>缓存集群)]
Mongo[(MongoDB<br/>文档数据库)]
ES[(Elasticsearch<br/>搜索引擎)]
end
Web --> Nginx
App --> Nginx
Mini --> Nginx
Nginx --> Gateway
Gateway --> Nacos
Gateway --> OA
Gateway --> CRM
Gateway --> HRM
Nacos -.-> Sentinel
Nacos --> MQ技术组件详解
1. 服务注册与发现
Nacos 2.x - 阿里巴巴开源的服务注册中心和配置中心
- 服务注册: 所有微服务启动时自动注册到 Nacos
- 服务发现: 服务之间通过服务名相互调用,支持负载均衡
- 配置管理: 统一管理所有服务的配置文件,支持动态刷新
- 健康检查: 自动检测服务健康状态,自动摘除不健康实例
2. API 网关
Spring Cloud Gateway - 基于响应式编程模型的网关
- 统一入口: 所有外部请求统一经过网关
- 路由转发: 根据路径转发到不同的微服务
- 限流熔断: 集成 Sentinel 实现流量控制和熔断降级
- 统一鉴权: 集成认证服务,统一处理身份验证和授权
- 协议转换: 支持 HTTP、WebSocket 等多种协议
3. 流量控制
Sentinel 1.8.x - 阿里巴巴开源的流量防卫兵
- 流量控制: 支持QPS、并发数、线程数等多种限流策略
- 熔断降级: 自动检测异常,实现服务熔断和降级
- 系统自适应: 根据系统负载动态调整限流阈值
- 热点数据缓存: 自动识别热点参数并进行缓存
4. 分布式事务
Seata 1.7.x - 阿里巴巴开源的分布式事务解决方案
- AT模式: 两阶段提交,自动化程度高,代码侵入小
- TCC模式: 三阶段提交,一致性强,性能好
- SAGA模式: 长事务解决方案,适用于业务流程复杂场景
- 事务补偿: 自动处理事务回滚和补偿
5. 消息队列
RocketMQ 5.x - 阿里巴巴开源的消息中间件
- 异步解耦: 服务间异步通信,提高系统响应速度
- 削峰填谷: 应对流量高峰,保护下游服务
- 顺序消息: 保证消息按顺序消费
- 事务消息: 实现最终一致性
- 延迟消息: 支持定时和延时任务
6. 定时任务
XXL-Job - 分布式定时任务调度平台
- 分片广播: 支持任务分片并行执行
- 动态配置: 支持在线配置任务执行策略
- 任务监控: 实时监控任务执行状态
- 失败重试: 自动失败重试和告警
7. 工作流引擎
Flowable 7.x - 开源的工作流和业务流程管理引擎
- BPMN 2.0: 支持业务流程建模和执行
- 流程设计: 可视化流程设计器
- 任务分配: 支持候选人、会签、委托等复杂审批模式
- 流程监控: 实时查看流程执行状态
开发规范
代码规范
- 遵循阿里巴巴 Java 开发手册
- 使用 CheckStyle 进行代码检查
- SonarQube 代码质量扫描
- 单元测试覆盖率不低于 70%
API 设计规范
- RESTful API 设计风格
- 统一的接口版本管理
- 统一的响应结果封装
- 统一的异常处理
- Swagger 接口文档自动生成
数据库设计规范
- 遵循数据库设计范式
- 统一的表命名规范
- 统一的索引设计规范
- 必须有主键和创建时间字段
- 逻辑删除设计
分支管理
main - 主分支,用于生产环境
develop - 开发分支,用于集成测试
feature/* - 功能分支,开发新功能
hotfix/* - 修复分支,修复紧急bug
release/* - 发布分支,版本发布Git 提交规范
feat: 新功能
fix: 修复bug
docs: 文档更新
style: 代码格式调整
refactor: 重构代码
test: 测试相关
chore: 构建过程或辅助工具的变动快速开始
环境准备
bash
# 必需环境
JDK 1.8+
Node.js 16+
Maven 3.6+
Docker 20.x+本地开发启动
bash
# 1. 启动基础设施
docker-compose -f docker-compose-env.yml up -d nacos mysql redis rocketmq
# 2. 启动网关服务
cd pointlion-gateway
mvn clean install
mvn spring-boot:run
# 3. 启动业务服务(以OA为例)
cd pointlion-oa
mvn clean install
mvn spring-boot:run
# 4. 启动前端
cd pointlion-ui
npm install
npm run dev端口分配
| 服务 | 端口 | 说明 |
|---|---|---|
| Gateway | 8080 | API网关 |
| Nacos | 8848 | 注册中心 |
| Sentinel Dashboard | 8858 | 流量控制控制台 |
| XXL-Job Admin | 8888 | 定时任务管理 |
| PointLion-UI | 3000 | 前端开发服务器 |
部署指南
Docker 部署
bash
# 构建镜像
mvn clean package
docker build -t pointlion-gateway:latest .
# 启动服务
docker-compose -f docker-compose.yml up -dKubernetes 部署
bash
# 构建镜像推送到仓库
docker build -t registry.cn-hangzhou.aliyuncs.com/pointlion/gateway:latest .
docker push registry.cn-hangzhou.aliyuncs.com/pointlion/gateway:latest
# 部署到 K8s
kubectl apply -f k8s/监控运维
服务监控
- Spring Boot Admin: 服务健康监控
- SkyWalking: 链路追踪和性能监控
- Prometheus + Grafana: 指标采集和可视化
日志管理
- ELK Stack: 日志收集、存储和分析
- 集中式日志: 所有服务日志统一收集
- 日志分级: DEBUG、INFO、WARN、ERROR 分级存储
告警通知
- 钉钉机器人: 异常告警通知
- 邮件告警: 重要事件邮件通知
- 短信告警: 紧急故障短信通知
性能优化
缓存策略
- 本地缓存: Caffeine 本地缓存
- 分布式缓存: Redis 缓存热点数据
- 缓存预热: 系统启动时预加载热点数据
- 缓存更新: 数据变更时主动更新缓存
数据库优化
- 读写分离: 主从复制实现读写分离
- 分库分表: 按业务模块分库,按规则分表
- 索引优化: 合理设计索引,避免全表扫描
- 连接池: Druid 连接池优化
异步处理
- @Async: Spring 异步方法
- 消息队列: RocketMQ 异步解耦
- 事件驱动: 基于事件的异步处理
安全防护
认证授权
- JWT Token: 基于 JWT 的身份认证
- OAuth2.0: 支持第三方登录
- RBAC: 基于角色的权限控制
- 数据权限: 精细化的数据权限控制
数据安全
- 加密存储: 敏感数据加密存储
- 传输加密: HTTPS 传输加密
- SQL 防注入: 参数化查询
- XSS 防护: 输入验证和输出编码
接口安全
- 签名验证: 接口签名防止篡改
- 限流保护: 防止接口被恶意调用
- 黑名单: IP 黑名单机制
常见问题
Q: 如何新增一个微服务模块?
- 创建新的 Maven 模块
- 添加 Nacos 客户端依赖
- 配置 application.yml
- 实现业务逻辑
- 在网关配置路由
Q: 如何实现分布式事务?
使用 Seata AT 模式:
- 在需要事务的方法上添加
@GlobalTransactional注解 - Seata 自动拦截并管理事务
- 通过 undo_log 表实现回滚
Q: 如何进行性能调优?
- 使用 SkyWalking 分析慢接口
- 通过 Druid 监控慢 SQL
- 优化缓存策略
- 调整 JVM 参数
- 数据库索引优化
Q: 如何进行故障排查?
- 查看应用日志
- 通过 SkyWalking 追踪请求链路
- 检查 Nacos 服务注册状态
- 查看 Sentinel 监控数据
- 检查数据库连接池状态
版本规划
当前版本:v1.0.0
- 已发布:OA、CRM、HRM、ERP、AMS、WMS、Mall、MP 等核心模块
- 开发中:AM、IM、MES、AI、RPT
规划版本
- v1.1.0: AM 档案管理模块
- v1.2.0: IM 即时通讯模块
- v1.3.0: MES 生产管理模块
- v1.4.0: AI 智能分析模块
- v1.5.0: RPT 报表模块
技术支持
开发过程中遇到问题,可以通过以下方式联系我们:
- 邮箱: 439635374@qq.com
- 微信: 扫码添加客服
- 官网: www.dianshixinxi.com
- 代码仓库: http://admin.dianshixinxi.com:666/
