Spring AI 2.0 | Spring Boot 4.1 | Spring Cloud Alibaba 2025.1.x | 17 个模块 | 4 种演示方式

你有没有经历过这样的场景——

想学习 Spring Cloud Alibaba,clone 了一个示例项目,结果花了两小时装 Nacos、配 RocketMQ、启 MySQL、调 Seata,最后跑通一个 Hello World 时热情已经消耗殆尽?

或者更糟:好不容易跑通了基础服务,想验证 Seata 分布式事务,发现还要手动启动 7 个子模块,按特定顺序逐个排查端口冲突?

微服务的学习曲线不应该卡在环境搭建上。

这就是我们打造 Spring Cloud Alibaba Samples 的初衷——一个基于 Spring Boot 4.1 + Spring Cloud Alibaba 2025.1.x 的生产级微服务示例项目,涵盖 17 个模块,覆盖 HTTP / Dubbo / gRPC / Stream 多协议通信、Spring AI 多模态集成及 Seata 分布式事务,并提供 4 种演示方式,从 AI 一键自动化到手动逐模块调试,让每个开发者都能找到最适合自己的上手路径。


🎯 痛点直击:学微服务为什么这么难?

痛点一:环境搭建是"第一道劝退关"

Nacos、RocketMQ、MySQL、PostgreSQL、Seata Server……一个完整的微服务示例依赖 5+ 中间件。很多人还没看到第一行业务代码,就已经在 port already in useconnection refused 中放弃了。

痛点二:模块启动顺序像"排雷"

Seata 的 7 个子模块分三层依赖,business-service 必须最后启动;Stream 模块需要 RocketMQ 先就绪;gRPC 服务发现依赖 Nacos 注册。启动顺序错了,报错信息却毫无提示,排查成本极高。

痛点三:验证全靠"凭感觉"

启动了不代表跑通了。服务注册是否成功?Feign 调用是否生效?Sentinel 限流是否触发?没有自动化的验证手段,只能一个个 curl 去试,效率极低。

这三个痛点的本质是:缺少一个"开箱即用"的完整体验路径。


🚀 四种演示方式:从 AI 自动化到手动调试,总有一款适合你

这是我们这个项目最引以为豪的设计之一——不是只给你一种启动方式,而是针对不同场景、不同阶段的开发者,提供了 4 种差异化的演示路径

方式 一句话说明 适用场景 上手时间
🤖 AI 一键演示 告诉 AI “演示项目”,全自动完成 快速体验、集成测试 30 秒
📜 一键脚本 start-all.sh 自动化全流程 批量验证、CI/CD 1 分钟
🐳 Docker 部署 中间件本地 + 微服务容器化 容器化实践、贴近生产 5 分钟
🔧 手动启动 逐模块手动控制 学习调试、单模块开发 按需

✨ 1. AI 一键演示——告诉 AI 四个字,剩下的交给它

这是我们的推荐方式,也是这个项目最独特的体验。

项目内置了 Qoder Agent Skill,clone 后在 Qoder 中输入 /demo-spring-cloud 或直接告诉 AI “演示项目”,即可自动完成:

环境检查 → 中间件就绪确认 → 按依赖顺序启动服务 → 接口验证 → 结果汇总

全流程无需手动干预一行命令。

更灵活的是,你可以指定验证某个场景:

# 快速体验(仅需 Nacos)
告诉 AI: "演示本项目"

# 单独验证某个场景
告诉 AI: "验证 Seata 分布式事务"
告诉 AI: "验证 Stream 消息收发"
告诉 AI: "演示 Spring AI"
告诉 AI: "演示一下视觉识别"

这意味着:AI 不只是帮你执行命令,而是理解整个微服务架构的依赖关系,智能编排启动和验证流程。

🏗️ 2. 一键脚本——9 个命令覆盖全生命周期

对于偏好脚本化、需要集成到 CI/CD 流水线的团队,start-all.sh 提供了完整的命令集:

# 查看所有命令
sh start-all.sh --help

# 一键安装中间件 + 打包模块
sh start-all.sh install

# 启动所有服务(自动检查前置条件、打包、启动、验证)
sh start-all.sh

# 仅启动 Seata 分布式事务(7 个模块)
sh start-all.sh seata

# 执行验证(不启动,仅验证已运行的服务)
sh start-all.sh verify

# 查看服务状态 / 日志 / 停止 / 重启 / 清理
sh start-all.sh status
sh start-all.sh logs <模块名>
sh start-all.sh stop
sh start-all.sh restart
sh start-all.sh clean

脚本的执行流程经过精心设计:

检查 Nacos → 检查 RocketMQ/MySQL/Seata Server(自动启动)
→ 安装依赖模块 → 打包 → 按顺序启动所有模块 → 执行验证 → 汇总结果

这意味着:一条命令从 0 到跑通,脚本替你处理所有前置条件和依赖顺序。

🐳 3. Docker 部署——中间件本地 + 微服务容器化的混合架构

这是我们精心设计的一种部署模式:中间件在宿主机本地运行,微服务全部 Docker 容器化,通过 host.docker.internal 桥接两者。

Mac 宿主机
├── 本地中间件: Nacos(8848) / RocketMQ(9876) / MySQL(3306) / PostgreSQL(5432)
│
└── Docker 容器 (通过 host.docker.internal 连宿主机)
    ├── 核心微服务 (9个): gateway / consumer / provider / grpc-server ...
    ├── Stream 消息     (profile: stream)
    ├── Spring AI       (profile: ai)
    └── Seata 分布式事务 (profile: seata)

为什么采用这种混合模式而非全容器化?因为 中间件(Nacos、MySQL 等)通常需要持久化数据,本地运行更方便管理和调试;而微服务是无状态的,容器化更贴近生产实践。

通过 Docker Compose 的 profile 机制,可以按需启动不同功能集:

# 启动本地中间件
./start-all.sh infra

# Maven 打包 + 构建所有 Docker 镜像
./docker-build.sh build

# 启动核心微服务 (9个)
./docker-build.sh up

# 按需启动 Seata / Stream / AI
./docker-build.sh up-seata
./docker-build.sh up-all

# 单模块独立部署
./mvnw package -DskipTests -pl cloud-provider-sample -am
docker build --build-arg MODULE=cloud-provider-sample -t spring-cloud-samples/provider .
docker compose up -d provider

这意味着:你可以在本地用熟悉的 IDE 调试中间件,同时用 Docker 管理微服务的构建和部署,兼顾开发效率和生产还原度。

🔧 4. 手动启动——每个模块都是一堂独立的实战课

对于想深入理解每个组件工作原理的开发者,手动启动是最扎实的学习方式。

项目的 README 按功能场景组织了完整的演示章节,每个章节都包含:

  • 前置条件:需要哪些中间件就绪
  • 启动顺序:按依赖关系排列
  • 验证命令:可直接复制执行的 curl 命令
  • 预期结果:应该看到什么响应
# 服务注册与发现
curl 'http://localhost:8766/hi?name=hongxi'

# Nacos 动态配置
curl 'http://localhost:8761/nacos/publishConfig?dataId=my.city&content=wuhan'

# Sentinel 限流验证(快速刷新触发限流)
curl 'http://localhost:8764/consumer-sample/hi?name=hongxi'

# Seata 分布式事务(三种调用链路)
curl http://localhost:18081/seata/rest
curl http://localhost:18081/seata/feign
curl http://localhost:18081/seata/dubbo

# Spring AI 对话
curl --get --data-urlencode "message=你好" "http://localhost:8888/ai/chat"

17 个模块,每个都可以独立启动、独立验证,不会互相干扰。

这意味着:你可以只花 5 分钟启动一个模块理解某个组件,而不必每次都跑起整个微服务集群。


🏛️ 项目全景:17 个模块覆盖微服务全栈

                              ┌──────────────┐
                              │    Nacos     │
                              │  注册 / 配置  │
                              └──────┬───────┘
                                     │
     ┌───────────────────────────────┼───────────────────────────────┐
     │                               │                               │
     │    ┌────────────┐     ┌───────┴───────┐     ┌────────────┐   │
     │    │  Gateway   │     │   Sentinel    │     │   Seata    │   │
     │    │   (8764)   │     │   限流/熔断    │     │  Server    │   │
     │    └──────┬─────┘     └───────────────┘     └──────┬─────┘   │
     │           │                                         │         │
     │    ┌──────┴──────────────────────┐                  │         │
     │    │         Consumer 层         │                  │         │
     │    │  consumer (8766)            │                  │         │
     │    │  consumer-reactive (8763)   │                  │         │
     │    └──────┬──────────────────────┘                  │         │
     │           │                                         │         │
     │    ┌──────┴──────────────────────────────────┐      │         │
     │    │            Provider 层(多协议)          │      │         │
     │    │  provider (8765) · provider-reactive     │      │         │
     │    │  provider-dubbo (50051)                  │      │         │
     │    │  grpc-server (9090)                      │      │         │
     │    └─────────────────────────────────────────┘      │         │
     │                                                     │         │
     │    ┌─────────────────────────────────────────┐      │         │
     │    │         高级能力模块                      │      │         │
     │    │  Stream (8767) · AI (8888) · RAG (8889) │      │         │
     │    │  Config (8761) · Discovery (8760)       │      │         │
     │    │  Scheduling                            │      │         │
     │    └─────────────────────────────────────────┘      │         │
     │                                                     │         │
     │    ┌─────────────────────────────────────────┐      │         │
     │    │     Seata 分布式事务(7 子模块)          │◄─────┘         │
     │    │  business → order → account             │                │
     │    │             → storage                   │                │
     │    └─────────────────────────────────────────┘                │
     └───────────────────────────────────────────────────────────────┘

📊 模块速查表

模块 端口 说明
cloud-gateway-sample 8764 Spring Cloud Gateway + Sentinel
cloud-consumer-sample 8766 Web Consumer(Feign / RestTemplate)
cloud-provider-sample 8765 Web Provider
cloud-consumer-reactive-sample 8763 Reactive Web Consumer
cloud-provider-reactive-sample 8762 Reactive Web Provider
cloud-provider-dubbo-sample 50051 Dubbo Triple 协议 Provider
cloud-grpc-server-sample 9090 / 8090 gRPC Server
cloud-grpc-client-sample - gRPC Client(四种调用模式)
cloud-nacos-discovery-sample 8760 Nacos 服务发现
cloud-nacos-config-sample 8761 Nacos 动态配置
cloud-stream-sample 8767 Spring Cloud Stream(六大场景)
cloud-ai-sample 8888 Spring AI 2.0 全场景
cloud-ai-rag-sample 8889 RAG 检索增强生成
cloud-seata-sample 多端口 Seata 分布式事务(7 子模块)
cloud-scheduling-sample - Alibaba Schedulerx 定时任务
cloud-sample-api - 接口定义 & Proto 文件
cloud-commons - 公共组件

🎓 四种方式,对应四种学习深度

不同的开发者处于不同的阶段,适合的方式也不同:

对于想快速体验的开发者

  • 🎯 选 AI 一键演示:clone → 告诉 AI “演示项目” → 30 秒看全流程跑通
  • ✅ 零配置成本,先建立对 Spring Cloud 的整体感知

对于想系统验证的开发者

  • 🎯 选 一键脚本start-all.sh installstart-all.sh → 自动验证
  • ✅ 理解模块间的依赖关系和启动顺序,可复现到 CI/CD 流水线

对于想实践容器化的开发者

  • 🎯 选 Docker 部署docker-build.sh builddocker-build.sh up → 按需扩展
  • ✅ 掌握混合部署架构,贴近真实生产环境的部署模式

对于想深入学习的开发者

  • 🎯 选 手动启动:按 README 章节逐个模块启动和验证
  • ✅ 理解每个组件的独立工作原理,灵活调试单个模块

💡 设计背后的工程思考

1. 为什么是四种而不是两种?

因为体验和学习是两个不同的目标

AI 一键演示和一键脚本解决的是"快速体验"——让你在最短时间内看到项目跑起来的效果。Docker 部署和手动启动解决的是"深入学习"——让你理解每个环节的工作原理。

从 AI 一键演示建立整体认知,到手动启动深入每个模块,这是一条从宏观到微观的学习路径

2. 为什么 Docker 采用混合部署而非全容器化?

全容器化意味着中间件也要 Docker 化,但:

  • Nacos 的配置数据、MySQL 的业务数据需要持久化,本地运行更方便管理
  • 开发者通常已经本地安装了部分中间件
  • 混合模式让"本地调试中间件 + 容器化微服务"成为可能

这意味着:架构选型不是追求"纯粹",而是追求"实用"。

3. 为什么 AI 演示是推荐方式?

因为 Agent Skill 不只是执行脚本,而是理解上下文

当你说"验证 Seata 分布式事务"时,AI 知道需要先启动 7 个模块、按三层依赖顺序、等待 MySQL 和 Seata Server 就绪、最后执行三种链路的 curl 验证。这种"理解意图 → 编排流程 → 执行验证"的能力,正是 AI Agent 在开发工具领域的正确打开方式。


🚦 30 秒快速开始

前置要求

  • JDK 17+
  • Nacos(没有?告诉 AI “安装 Nacos”)

方式一:AI 一键演示

# 1. Clone 项目
git clone https://github.com/javahongxi/spring-cloud-samples.git
cd spring-cloud-samples

# 2. 在 Qoder 中告诉 AI
# "演示本项目"

方式二:一键脚本

# 1. Clone 项目
git clone https://github.com/javahongxi/spring-cloud-samples.git
cd spring-cloud-samples

# 2. 安装中间件 + 打包
sh start-all.sh install

# 3. 启动所有服务
sh start-all.sh

方式三:Docker 部署

# 1. Clone 项目
git clone https://github.com/javahongxi/spring-cloud-samples.git
cd spring-cloud-samples

# 2. 启动本地中间件
./start-all.sh infra

# 3. 构建镜像 + 启动微服务
./docker-build.sh build
./docker-build.sh up

# 4. 验证
curl 'http://localhost:8766/hi?name=docker'

方式四:手动启动

参考 README 中的功能演示章节,按章节逐步操作。


🔗 相关链接


📝 结语

从 17 个模块的全栈覆盖,到 4 种演示方式的全路径打通,这个项目的目标始终如一——让 Spring Cloud Alibaba 的学习和实践不再被环境搭建卡住

如果你正在

  • 🎯 学习 Spring Cloud Alibaba,想要一个"跑得通"的参考项目
  • 🚀 验证 Spring Boot 4.1 / Spring AI 2.0 的新特性
  • 🏗️ 为团队搭建微服务脚手架,需要生产级的代码参考
  • 🤖 体验 AI Agent 在开发工具中的实际应用

Star ⭐ Spring Cloud Alibaba Samples,四种方式即刻上手!

git clone https://github.com/javahongxi/spring-cloud-samples.git
cd spring-cloud-samples
# 告诉 AI: "演示本项目"

© hongxi.org | 以生产环境可参考为目标,打造完整的 Spring Cloud 示例项目

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐