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 → 工作流引擎学习建议
- 循序渐进: 建议按阶段学习,每个阶段打好再进入下一个
- 动手实践: 每个项目都要亲手运行和修改代码
- 理解原理: 不要只停留在使用层面,理解底层原理
- 组合使用: 尝试将多个技术组合使用,如 Redis + Kafka + gRPC
下一步学习
完成本部分后,建议继续学习:
- 06-cloud-native - Docker、Kubernetes、ServiceMesh、Serverless