Files
spring-cloud-template/PRD.md
T
2025-10-06 14:53:52 +08:00

110 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 产品需求文档(PRD)
## 一、项目概述
### 1.1 项目背景
随着业务的发展,系统逐渐复杂多变。为提升系统的可维护性、可扩展性和高可用性,计划构建一个基于 Spring Cloud 的微服务架构项目模板,用于快速搭建出符合 Best Practices 的微服务系统。
### 1.2 项目目标
- 构建一个基础的 Spring Cloud 微服务项目结构。
- 提供服务注册与发现、配置中心、远程调用、负载均衡等核心功能。
- 项目结构清晰,便于后续扩展和开发人员协作。
- 能够作为一个通用模板用于多个业务场景。
---
## 二、功能需求
### 2.1 项目结构要求
项目应包含以下模块:
| 模块名称 | 功能描述 |
|----------------------|-------------------------------------------|
| `spring-cloud-template` | 项目根目录,maven 父工程 |
| `eureka-server` | 服务注册中心(Eureka Server) |
| `config-server` | 配置中心(Spring Cloud Config) |
| `service-a` | 服务A(提供 REST API) |
| `service-b` | 服务B(提供 REST API) |
| `api-gateway` | API 网关(Spring Cloud Gateway) |
| `demo-client` | 示例客户端(消费服务A和服务B) |
### 2.2 核心功能说明
#### Eureka Server
- 提供微服务注册与发现功能。
- 单机部署。
- 页面展示服务实例列表。
#### Config Server
- 提供统一的配置管理。
#### Service A & B
- 提供基本的 REST 接口,例如 `/api/service-a/hello` 和 `/api/service-b/hello`。
- 包含基本的 logging 和 health check 功能。
- 支持通过 Feign 进行服务间通信。
#### API Gateway
- 提供统一的 API 入口。
- 实现路由跳转(如 `/api/service-a/**` 路由到 service-a)。
- 支持基本的负载均衡(使用 Ribbon)。
#### Demo Client
- 调用通过 API Gateway 路由的服务 A 和 B。
- 展示如何通过配置和方式访问远程服务。
### 2.3 非功能需求
| 需求类型 | 说明 |
|----------|------|
| 可扩展性 | 模块设计清晰,便于后续增加新服务 |
| 可维护性 | 配置集中管理,日志统一采集 |
| 可靠性 | 服务提供健康检查、断路机制(Hystrix) |
| 开发便捷性 | 提供演示和可运行的模板,适合快速启动 |
| 技术兼容性 | 使用 Spring Boot、Spring Cloud 的主流版本(如 2023.0.x) |
---
## 三、项目架构
```
├── spring-cloud-template (父工程)
│ ├── eureka-server
│ ├── config-server
│ ├── service-a
│ ├── service-b
│ ├── api-gateway
│ └── demo-client
```
### 架构特点:
- 服务注册与发现:使用 Eureka Server
- 配置中心:使用 Spring Cloud Config
- 服务间调用:使用 Feign Client + Ribbon
- 服务网关:使用 Spring Cloud Gateway
- 服务健康:HealthCheck + Hystrix(断路器)
- 日志统一:支持 SLF4J + Logback + ELK(可选扩展)
---
## 四、环境要求
### 4.1 开发环境
- JDK 21
- Maven 3.x
- Spring Boot 3.x
- Spring Cloud 2023.0.x
- Git
### 4.2 项目依赖
- Eureka Server
- Spring Cloud Config
- Spring Cloud Gateway
- Spring Cloud Feign
- Spring Cloud Ribbon
- Spring Cloud Hystrix
- Spring Boot Actuator(用于健康检查)
### 4.3 工具
- IntelliJ IDEA / VS Code
- API fox(测试 API)
- Gitea(配置文件托管)