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 系统架构
- 学习路径:完整的课程规划
现在,你已经掌握了可观察性的基础知识。在下一章,我们将深入学习:为什么在微服务架构中需要可观察性?架构演进带来了哪些挑战?可观察性如何解决这些挑战?
准备好了吗?让我们继续下一章的学习!