Skip to content

微服务版本开发文档

技术架构概览

点狮微服务版本采用现代化的微服务架构设计,基于 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

端口分配

服务端口说明
Gateway8080API网关
Nacos8848注册中心
Sentinel Dashboard8858流量控制控制台
XXL-Job Admin8888定时任务管理
PointLion-UI3000前端开发服务器

部署指南

Docker 部署

bash
# 构建镜像
mvn clean package
docker build -t pointlion-gateway:latest .

# 启动服务
docker-compose -f docker-compose.yml up -d

Kubernetes 部署

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: 如何新增一个微服务模块?

  1. 创建新的 Maven 模块
  2. 添加 Nacos 客户端依赖
  3. 配置 application.yml
  4. 实现业务逻辑
  5. 在网关配置路由

Q: 如何实现分布式事务?

使用 Seata AT 模式:

  1. 在需要事务的方法上添加 @GlobalTransactional 注解
  2. Seata 自动拦截并管理事务
  3. 通过 undo_log 表实现回滚

Q: 如何进行性能调优?

  1. 使用 SkyWalking 分析慢接口
  2. 通过 Druid 监控慢 SQL
  3. 优化缓存策略
  4. 调整 JVM 参数
  5. 数据库索引优化

Q: 如何进行故障排查?

  1. 查看应用日志
  2. 通过 SkyWalking 追踪请求链路
  3. 检查 Nacos 服务注册状态
  4. 查看 Sentinel 监控数据
  5. 检查数据库连接池状态

版本规划

当前版本: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 报表模块

技术支持

开发过程中遇到问题,可以通过以下方式联系我们:


相关文档