QuickBlue 微服务开发手册

版本: 1.1 最后更新: 2026年6月27日 适用对象: 初级开发者、中级开发者、测试工程师

目录


1. 开发环境准备

1.1 必备软件

软件版本要求下载地址
JDK17+Oracle JDK
Maven3.8+Maven
Node.js18+Node.js
PostgreSQL14+PostgreSQL
Redis7+Redis
Docker24+Docker

1.2 环境变量配置


2. 项目结构说明


3. 快速启动指南

3.1 启动依赖服务

3.2 启动微服务

3.3 访问服务

服务URL说明
API Gatewayhttp://localhost:8080API 入口
Spring Boot Adminhttp://localhost:9090服务监控
Zipkin UIhttp://localhost:9411链路追踪
Knife4j API 文档http://localhost:8080/doc.htmlAPI 文档

4. 微服务开发规范

4.1 包命名规范

4.2 代码风格


5. 分布式链路追踪使用指南

5.1 配置说明

Nacos 配置(common-config.yaml)

环境变量设置

环境推荐值说明
开发环境TRACING_SAMPLE_RATE=1.0100%采样,便于调试
测试环境TRACING_SAMPLE_RATE=0.550%采样,平衡性能
生产环境TRACING_SAMPLE_RATE=0.110%采样,降低性能影响

5.2 使用方法

基本使用(零配置)

自定义 Span 标签

异步任务追踪

5.3 验证追踪效果

  1. 查看日志: 检查控制台日志是否包含 [traceId][spanId]

  2. 调用接口: 发起一个跨服务的请求

  3. 访问 Zipkin: http://localhost:9411 查看调用链路

  4. 搜索 Trace: 在 Zipkin UI 中搜索 Trace ID


6. 数据库操作指南

6.1 PostgreSQL 适配要点

Boolean 类型处理

分页查询

6.2 数据库脚本管理

脚本位置说明
创建数据库database/postgresql/01_create_databases.sql初始化数据库
Support 模块迁移database/postgresql/02_migrate_support.sql支撑服务表结构
System 模块迁移database/postgresql/03_migrate_system.sql系统服务表结构
Business 模块迁移database/postgresql/04_migrate_business.sql业务服务表结构
AI 模块表结构database/postgresql/05_create_ai_tables.sqlAI服务表结构

7. API 开发指南

7.1 RESTful API 规范

方法路径说明
GET/api/{service}/v1/{resource}查询单个资源
GET/api/{service}/v1/{resource}/list查询资源列表
POST/api/{service}/v1/{resource}创建资源
PUT/api/{service}/v1/{resource}/{id}更新资源
DELETE/api/{service}/v1/{resource}/{id}删除资源

7.2 统一响应格式

7.3 异常处理


8. 前端开发指南

8.1 项目结构

8.2 API 调用示例


9. 测试指南

9.1 单元测试

9.2 接口测试


10. 部署指南

10.1 Docker 部署

10.2 Nacos 配置一键同步

背景: 项目根目录 nacos_config/ 存放了所有服务的 Nacos 配置模板(common 公共配置 + services 服务私有配置)。以往每次改完模板需要手动打开 Nacos 控制台逐条粘贴发布,容易出错。现已内置「一键同步」功能,在管理后台点击按钮即可将本地模板批量推送到 Nacos。

架构

使用方法

  1. 修改配置模板:编辑 nacos_config/common/nacos_config/services/ 下的 .yaml 文件

  2. 编译项目mvn compile -pl QuickBlue-modules/QuickBlue-support(IDE 自动编译也可)

  3. 启动 support 服务:确保 support 服务正常运行

  4. 打开管理后台:进入 系统管理 → Nacos配置管理

  5. 选择命名空间:在下拉框中选择目标命名空间(如 QuickBlue-dev)

  6. 点击「一键同步」

    • 系统自动扫描 classpath 下的所有配置模板

    • 逐文件对比 Nacos 上已有内容:

      • 内容无变化 → 跳过(不会重复写入)

      • 已存在但内容不同 → 更新(覆盖)

      • 新配置 → 创建(首次发布)

  7. 查看结果:弹窗显示同步汇总(共扫描 N 个文件,成功/跳过/失败各多少)

关键设计

特性说明
幂等安全多次点击不会重复写入,内容未变自动跳过
命名映射services/QuickBlue-system-pg.yaml → Nacos dataId QuickBlue-system.yaml(自动去 -pg 后缀)
权限控制按钮受 system:nacos-config:edit 权限保护
零依赖纯 Spring 类路径扫描,不需要文件系统路径

10.3 配置模板维护规范

修改规范

  1. 唯一数据源:始终编辑项目根 nacos_config/ 下的文件,不要修改 support/src/main/resources/nacos_config_templates/(那是编译自动生成的回退副本)

  2. 分组规则

    • common/ → Nacos group QuickBlue_GROUP,公共配置供所有服务共享读取

    • services/ → Nacos group QuickBlue_GROUP,文件名去掉 -pg 后缀作为 dataId

  3. 新增配置文件后:需要重新编译 support 模块才会被一键同步扫描到

  4. 占位符规范:使用 ${ENV_VAR:default} 格式,环境变量通过部署配置注入

同步时机

场景操作
开发阶段新增配置项编辑模板 → 编译 → 一键同步
配置项值变更直接在 Nacos 控制台修改(如需持久化到模板,同步修改 nacos_config/ 文件)
新增一个服务services/ 下添加 QuickBlue-xxx-pg.yaml → 编译 → 一键同步
首次部署环境逐个命名空间执行一键同步(dev → test → prod)

11. 常见问题解答

Q1: 链路追踪不生效?

A: 检查以下几点:

Q2: 日志中没有 Trace ID?

A: 检查 logback-spring.xml 是否存在且配置正确,确保使用了 %X{traceId:-} 格式。

Q3: 如何禁用链路追踪?

A: 设置 TRACING_SAMPLE_RATE=0.0 或在配置中设置 management.tracing.sampling.probability=0.0

Q4: 如何自定义 Trace ID 生成?

A: 创建自定义 TracerCustomizer Bean,重写 customize 方法。


技术支持: 如遇问题,请联系架构支持团队或查阅 doc/ 目录下的相关文档。

← 返回文档首页