00.4课程项目介绍 ShoeHub电商系统

分类: 可观察性基础概念

课程项目介绍:ShoeHub 电商系统

在整个课程中,我们将以 ShoeHub 作为实战案例,学习如何在实际系统中实现可观察性。

本节将了解:ShoeHub 是什么?它的架构是什么样的?我们将如何使用它来学习可观察性?

ShoeHub 简介

ShoeHub 是什么?

ShoeHub 是一个完整的电商系统,专门用于演示全栈可观察性的实践。

它包含了电商系统的核心功能:

  • 用户注册和登录
  • 商品浏览和搜索
  • 购物车管理
  • 订单创建和支付
  • 订单查询和追踪

这个系统的特点是:

  • 有完整的电商业务流程,涵盖了真实的业务场景
  • 采用前后端分离架构,符合现代应用架构
  • 采用微服务架构,展示了分布式系统的复杂性
  • 提供了真实的业务场景,非常适合学习可观察性

在整个课程中,我们将以 ShoeHub 作为实战项目,学习如何在实际系统中实现可观察性。无论是前端性能监控,还是后端服务追踪,无论是数据库监控,还是业务指标分析,我们都会在 ShoeHub 系统上进行实践。

这样,不仅能学会可观察性的理论,还能学会如何在实际项目中应用可观察性。

系统架构概览

ShoeHub 采用经典的微服务架构,分为几个层次:

第一层是前端层:React + TypeScript 构建的用户界面。用户在这里浏览商品、管理购物车、创建订单。

第二层是网关层:API Gateway 负责请求路由、认证、限流等功能。

第三层是服务层:包括多个微服务:

  • 用户服务(User Service):处理用户注册、登录、个人信息管理
  • 商品服务(Product Service):处理商品信息、库存管理
  • 订单服务(Order Service):处理订单创建、查询、状态管理
  • 支付服务(Payment Service):处理支付流程

第四层是数据层:包括 MySQL 关系数据库、Redis 缓存、Kafka 消息队列。

这是一个典型的微服务架构,服务之间通过 HTTP 或消息队列通信。这种架构带来了复杂性,但也正是这种复杂性,让我们需要可观察性。

在 ShoeHub 系统中,一个用户请求可能经过前端、API Gateway、多个微服务、数据库、缓存、消息队列等。这就是为什么需要可观察性:我们需要追踪这个请求的完整路径,了解它在每个组件中发生了什么。

技术栈介绍

前端技术栈

  • React 18 和 TypeScript 5 构建现代化的用户界面
  • OpenTelemetry Web SDK 实现前端可观察性
  • 用户行为追踪和性能监控

后端技术栈

  • Java 17 和 Spring Boot 3 构建微服务
  • OpenTelemetry Java SDK 实现后端可观察性
  • 支持自动插桩和手动插桩
  • 服务间追踪和链路追踪

基础设施

  • Grafana Stack 作为可观察性平台:
    • Prometheus 存储 Metrics(指标)
    • Loki 存储 Logs(日志)
    • Tempo 存储 Traces(追踪)
    • Alloy 作为 OpenTelemetry Collector
    • Mimir 用于大规模 Metrics 存储
  • MySQL 8 作为关系数据库
  • Redis 7 作为缓存
  • Kafka 3 作为消息队列

可观察性工具链

数据流是这样的:

  • 前端通过 OpenTelemetry Web SDK 采集数据,发送到 Alloy
  • 后端通过 OpenTelemetry Java SDK 采集数据,发送到 Alloy
  • 数据库通过自动追踪采集数据,发送到 Alloy
  • Alloy 处理数据后,路由到 Grafana Stack(Prometheus、Loki、Tempo)
  • 最后在 Grafana 中可视化所有数据

这就是我们将在课程中学习和实践的完整可观察性体系。

学习路径规划

第一部分:基础理论(第 0-2 章)

我们刚刚完成这一部分。我们学习了可观察性的基础概念,了解了从单体到微服务的架构演进,掌握了 OpenTelemetry 的架构概览。

第二部分:工具安装配置(第 3-8 章)

接下来,我们将学习如何安装和配置 Grafana Stack。包括 Prometheus 和 Grafana、Loki 日志管理、Alloy 和 Tempo 追踪、Mimir 大规模存储。我们会用 ShoeHub 系统作为示例,配置完整的可观察性栈。

第三部分:代码集成(第 9-11 章)

然后,我们将学习如何在实际代码中集成 OpenTelemetry。包括后端 Java Spring Boot 集成、前端 React 集成、数据库监控。我们会在 ShoeHub 系统的代码中进行实际操作。

第四部分:实战应用(第 12-15 章)

接着,我们将学习如何应用可观察性。包括 Dashboard 设计、故障排查实战、KPI 定义、OKR 落地。我们会用 ShoeHub 系统的真实数据来实践。

第五部分:高级主题(第 16-18 章)

最后,我们将学习高级主题,包括 Mimir 大规模存储、最佳实践、综合实战项目。我们将完成一个完整的 ShoeHub 可观察性系统。

完成课程后,你将能够

  • 理解可观察性的核心概念和价值
  • 安装和配置完整的 Grafana Stack
  • 在前端和后端应用中集成 OpenTelemetry
  • 设计专业的监控 Dashboard
  • 快速定位和解决生产问题
  • 定义和追踪技术及业务 KPI
  • 用数据驱动 OKR 落地
  • 在生产环境中稳定运行可观察性系统

项目演示

ShoeHub 系统的实际运行效果:

  • 首页:展示商品列表和搜索功能。用户可以浏览商品、搜索商品。
  • 商品详情页:显示商品的详细信息。用户可以将商品加入购物车。
  • 购物车页面:用户可以看到已选择的商品,并进行结算。
  • 订单页面:用户创建订单并完成支付。
  • 可观察性 Dashboard:展示 ShoeHub 系统的监控数据。可以看到前端性能、后端服务状态、数据库性能、业务指标等。

在整个课程中,我们将:

  • 在 ShoeHub 系统中实现可观察性
  • 使用 ShoeHub 的真实数据学习 Dashboard 设计
  • 模拟故障场景进行故障排查实践
  • 基于 ShoeHub 的业务定义 KPI 和 OKR

ShoeHub 不仅是一个演示项目,更是一个完整的学习和实践平台。

第 0 章小结

让我们回顾一下第 0 章的学习内容。

我们学习了

  • 什么是可观察性,它与监控的区别
  • 三大支柱:Traces(链路追踪)、Metrics(指标)、Logs(日志)
  • 信号关联:为什么需要关联,如何实现关联
  • 课程项目:ShoeHub 电商系统的架构和技术栈

我们建立了

  • 基础理论:可观察性的核心概念
  • 工具认知:OpenTelemetry 和 Grafana Stack
  • 项目理解:ShoeHub 系统架构
  • 学习路径:完整的课程规划

现在,你已经掌握了可观察性的基础知识。在下一章,我们将深入学习:为什么在微服务架构中需要可观察性?架构演进带来了哪些挑战?可观察性如何解决这些挑战?

准备好了吗?让我们继续下一章的学习!