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

3.5 KiB
Raw Blame History

产品需求文档(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(配置文件托管)