00.3、项目架构预览
分类: 课程介绍与技术栈概览
项目架构预览
在开始编码之前,我们需要了解项目的最终架构设计。本课程将构建一个完整的微服务商城后端系统,从单体应用演进到微服务架构。
本节将介绍:最终微服务架构设计、服务拆分策略、技术栈组合方案,以及开发环境准备。
最终微服务架构设计
整体架构
我们的商城后端系统将采用微服务架构,包含以下核心服务:
服务列表
-
API Gateway(网关服务)
- 统一入口
- 路由转发
- 负载均衡
- 限流熔断
-
User Service(用户服务)
- 用户注册
- 用户登录
- 用户信息管理
-
Product Service(商品服务)
- 商品管理
- 商品查询
- 商品搜索
-
Order Service(订单服务)
- 订单创建
- 订单查询
- 订单状态管理
-
Payment Service(支付服务)
- 支付处理
- 支付回调
- 支付查询
-
Inventory Service(库存服务)
- 库存扣减
- 库存查询
- 库存回滚
服务拆分策略
拆分原则
拆分原则:
- 单一职责原则:每个服务只负责一个业务领域
- 业务边界清晰:按 DDD 的限界上下文拆分
- 数据独立:每个服务有独立的数据库
- 团队结构:考虑团队的组织结构
拆分过程
拆分步骤:
- 识别业务领域:用户域、商品域、订单域、支付域、库存域
- 划分限界上下文:确定每个领域的边界
- 拆分服务:将单体应用拆分为多个微服务
- 独立部署:每个服务独立部署和运行
技术栈组合方案
技术栈架构
各层技术选型
应用层:
- Java 21:编程语言
- Maven:项目构建工具
框架层:
- Spring Boot 3:应用框架
- Spring 6:核心框架
服务治理层:
- Nacos:服务注册与发现、配置中心
- Sentinel:流量控制、熔断降级
- Seata:分布式事务
- Gateway:API 网关
数据层:
- MySQL:关系型数据库
- MyBatis-Plus:ORM 框架
中间件层:
- RocketMQ:消息队列
数据流设计
请求流程
数据一致性
开发环境准备
必需软件
软件下载链接
-
Java 21 JDK
-
IntelliJ IDEA
- Community 版本:https://www.jetbrains.com/idea/download/
- Ultimate 版本:https://www.jetbrains.com/idea/download/
-
Maven
-
MySQL
-
Nacos
-
RocketMQ
环境配置检查清单
- Java 21 安装并配置 JAVA_HOME
- Maven 安装并配置 MAVEN_HOME
- IntelliJ IDEA 安装并配置 JDK
- MySQL 安装并创建数据库
- Nacos 下载并准备启动
- RocketMQ 下载并准备启动
项目演进路径
从单体到微服务
演进过程:
- 第3章:构建单体应用,实现基本功能
- 第4章:应用 DDD 设计,重构代码结构
- 第5章:理解微服务理论,规划服务拆分
- 第6章:了解 Spring Cloud Alibaba 生态
- 第7-12章:逐个集成 Spring Cloud Alibaba 组件
- 第13章:整合所有组件,构建完整系统
本节小结
在本节中,我们了解了:
第一个是最终微服务架构。 包含网关层、业务服务层和基础设施层,6个核心微服务。
第二个是服务拆分策略。 按单一职责、业务边界、数据独立的原则拆分服务。
第三个是技术栈组合方案。 Java 21 + Spring Boot 3 + Spring Cloud Alibaba 的完整技术栈。
第四个是数据流设计。 请求流程和数据一致性保证方案。
第五个是开发环境准备。 需要安装的软件和配置检查清单。
第六个是项目演进路径。 从单体应用到微服务架构的完整演进过程。
这就是项目架构预览。理解这些架构设计,是开始构建微服务系统的重要基础。
在下一章,我们将深入学习为什么选择 Java 21,了解 Java 21 相对于 Java 8 的优势和新特性。