Skip to content

Part 05: 项目实战 ​

本部分通过真实项目案例,将前面学到的Go语言知识应用到实际开发中。

学习目标 ​

完成本部分学习后,你将能够:

  • 使用主流框架开发微服务应用
  • 掌握配置管理、日志、缓存等工程化实践
  • 理解 RPC 通信和消息队列的使用
  • 具备监控、告警和可观测性建设能力

实战项目列表 ​

Cobra - CLI 命令行工具 ​

难度: ⭐
技术栈: Cobra, Viper, Survey
内容: 从零构建 CLI 命令行应用,包括命令解析、子命令、交互式输入


Viper - 配置管理 ​

难度: ⭐
技术栈: Viper
内容: 多格式配置文件、环境变量、远程配置、配置热更新


Zap - 日志系统 ​

难度: ⭐
技术栈: Zap
内容: 结构化日志、日志级别、日志轮转、性能优化


Redis - 缓存与存储 ​

难度: ⭐⭐
技术栈: Redis, go-redis
内容: 数据类型、持久化、主从复制、哨兵集群、分布式锁、缓存设计


Kafka - 消息队列 ​

难度: ⭐⭐
技术栈: Kafka, sarama/confluent-kafka-go
内容: 核心概念、生产者消费者、消费者组、分区副本、集群管理


NATS - 轻量消息系统 ​

难度: ⭐⭐
技术栈: NATS, JetStream
内容: 发布订阅、请求响应、JetStream、KV存储、微服务通信


gRPC - RPC 框架 ​

难度: ⭐⭐
技术栈: Protocol Buffers, gRPC-Go
内容: Proto定义、四种RPC模式、拦截器、错误处理、负载均衡、安全认证


etcd - 分布式协调 ​

难度: ⭐⭐⭐
技术栈: etcd, Raft
内容: 数据模型、Raft共识、KV操作、Watch/Lease、分布式锁、配置中心


Kratos - 微服务框架 ​

难度: ⭐⭐⭐
技术栈: go-kratos, gRPC, HTTP
内容: 微服务架构、服务拆分、API网关、用户/订单/支付/商品服务


go-zero - 微服务框架 ​

难度: ⭐⭐⭐
技术栈: go-zero
内容: go-zero 微服务开发实践


Wire - 依赖注入 ​

难度: ⭐⭐
技术栈: google/wire
内容: 依赖注入原理、Wire代码生成、项目结构组织


Prometheus - 监控 ​

难度: ⭐⭐
技术栈: Prometheus, PromQL
内容: 数据模型、PromQL、Go客户端、告警规则、服务发现、高可用部署


Grafana - 可视化 ​

难度: ⭐⭐
技术栈: Grafana
内容: 数据源配置、仪表板设计、告警、权限管理


Temporal - 工作流引擎 ​

难度: ⭐⭐⭐
技术栈: Temporal
内容: 工作流编排、活动、定时任务、可靠性保证


学习路径建议 ​

第一阶段:工程基础 ​

1. Cobra    → 构建CLI工具
2. Viper    → 配置管理
3. Zap      → 日志系统

第二阶段:数据存储与通信 ​

4. Redis    → 缓存与存储
5. Kafka    → 消息队列
6. NATS     → 轻量消息系统
7. gRPC     → RPC通信

第三阶段:微服务与协调 ​

8. etcd     → 分布式协调
9. Kratos   → 微服务框架
10. go-zero  → 微服务框架
11. Wire    → 依赖注入

第四阶段:可观测性 ​

12. Prometheus → 监控
13. Grafana    → 可视化

第五阶段:高级专题 ​

14. Temporal → 工作流引擎

学习建议 ​

  1. 循序渐进: 建议按阶段学习,每个阶段打好再进入下一个
  2. 动手实践: 每个项目都要亲手运行和修改代码
  3. 理解原理: 不要只停留在使用层面,理解底层原理
  4. 组合使用: 尝试将多个技术组合使用,如 Redis + Kafka + gRPC

下一步学习 ​

完成本部分后,建议继续学习:

  • 06-cloud-native - Docker、Kubernetes、ServiceMesh、Serverless