00.3项目架构预览

分类: 课程介绍与技术栈概览

项目架构预览

在开始编码之前,我们需要了解项目的最终架构设计。本课程将构建一个完整的微服务商城后端系统,从单体应用演进到微服务架构。

本节将介绍:最终微服务架构设计、服务拆分策略、技术栈组合方案,以及开发环境准备。

最终微服务架构设计

整体架构

我们的商城后端系统将采用微服务架构,包含以下核心服务:

服务列表

  1. API Gateway(网关服务)

    • 统一入口
    • 路由转发
    • 负载均衡
    • 限流熔断
  2. User Service(用户服务)

    • 用户注册
    • 用户登录
    • 用户信息管理
  3. Product Service(商品服务)

    • 商品管理
    • 商品查询
    • 商品搜索
  4. Order Service(订单服务)

    • 订单创建
    • 订单查询
    • 订单状态管理
  5. Payment Service(支付服务)

    • 支付处理
    • 支付回调
    • 支付查询
  6. Inventory Service(库存服务)

    • 库存扣减
    • 库存查询
    • 库存回滚

服务拆分策略

拆分原则

拆分原则:

  1. 单一职责原则:每个服务只负责一个业务领域
  2. 业务边界清晰:按 DDD 的限界上下文拆分
  3. 数据独立:每个服务有独立的数据库
  4. 团队结构:考虑团队的组织结构

拆分过程

拆分步骤:

  1. 识别业务领域:用户域、商品域、订单域、支付域、库存域
  2. 划分限界上下文:确定每个领域的边界
  3. 拆分服务:将单体应用拆分为多个微服务
  4. 独立部署:每个服务独立部署和运行

技术栈组合方案

技术栈架构

各层技术选型

应用层:

  • Java 21:编程语言
  • Maven:项目构建工具

框架层:

  • Spring Boot 3:应用框架
  • Spring 6:核心框架

服务治理层:

  • Nacos:服务注册与发现、配置中心
  • Sentinel:流量控制、熔断降级
  • Seata:分布式事务
  • Gateway:API 网关

数据层:

  • MySQL:关系型数据库
  • MyBatis-Plus:ORM 框架

中间件层:

  • RocketMQ:消息队列

数据流设计

请求流程

数据一致性

开发环境准备

必需软件

软件下载链接

  1. Java 21 JDK

  2. IntelliJ IDEA

  3. Maven

  4. MySQL

  5. Nacos

  6. RocketMQ

环境配置检查清单

  • Java 21 安装并配置 JAVA_HOME
  • Maven 安装并配置 MAVEN_HOME
  • IntelliJ IDEA 安装并配置 JDK
  • MySQL 安装并创建数据库
  • Nacos 下载并准备启动
  • RocketMQ 下载并准备启动

项目演进路径

从单体到微服务

演进过程:

  1. 第3章:构建单体应用,实现基本功能
  2. 第4章:应用 DDD 设计,重构代码结构
  3. 第5章:理解微服务理论,规划服务拆分
  4. 第6章:了解 Spring Cloud Alibaba 生态
  5. 第7-12章:逐个集成 Spring Cloud Alibaba 组件
  6. 第13章:整合所有组件,构建完整系统

本节小结

在本节中,我们了解了:

第一个是最终微服务架构。 包含网关层、业务服务层和基础设施层,6个核心微服务。

第二个是服务拆分策略。 按单一职责、业务边界、数据独立的原则拆分服务。

第三个是技术栈组合方案。 Java 21 + Spring Boot 3 + Spring Cloud Alibaba 的完整技术栈。

第四个是数据流设计。 请求流程和数据一致性保证方案。

第五个是开发环境准备。 需要安装的软件和配置检查清单。

第六个是项目演进路径。 从单体应用到微服务架构的完整演进过程。

这就是项目架构预览。理解这些架构设计,是开始构建微服务系统的重要基础。

在下一章,我们将深入学习为什么选择 Java 21,了解 Java 21 相对于 Java 8 的优势和新特性。