HiHuo
首页
博客
手册
工具
首页
博客
手册
工具
  • Go 架构进阶

    • Go 架构进阶学习手册 - 总目录
    • 01-GMP调度模型深度解析
    • 02-Channel源码剖析
    • 03-内存模型与GC机制
    • 04-垃圾回收器全链路
    • 05-并发模型与锁机制
    • 06-网络模型与Netpoll
    • 07-Runtime全景融合
    • 08-性能优化实战
    • 09-微服务架构实践

Go 架构进阶学习手册 - 总目录

学习路线图

本学习手册基于 Go runtime 源码深度解析,适合有一定 Go 基础的开发者进阶学习。通过系统性的源码分析、实战代码和性能调优,帮助读者掌握 Go 语言的核心架构设计。

学习目标

  • 深入理解 Go runtime 的底层机制
  • 掌握 GMP 调度模型、内存管理、GC 等核心组件
  • 能够进行性能调优和架构设计
  • 具备阅读和调试 Go 源码的能力

章节导航

第一阶段:核心调度机制

01-GMP调度模型深度解析

  • 核心内容:G/M/P 架构、调度循环、Work Stealing
  • 源码重点:runtime/proc.go、runtime/sched.go
  • 实战项目:模拟调度器、trace 工具使用
  • 学习时间:2-3 天

02-Channel源码剖析

  • 核心内容:hchan 结构、send/recv 机制、select 多路复用
  • 源码重点:runtime/chan.go、runtime/select.go
  • 实战项目:mini-channel 实现
  • 学习时间:2-3 天

第二阶段:内存与并发

03-内存模型与GC机制

  • 核心内容:三层内存架构、span 管理、逃逸分析
  • 源码重点:runtime/malloc.go、runtime/mheap.go
  • 实战项目:内存分配模拟器
  • 学习时间:3-4 天

04-垃圾回收器全链路

  • 核心内容:三色标记、写屏障、并发清扫
  • 源码重点:runtime/mgc.go、runtime/mgcsweep.go
  • 实战项目:GC 追踪与分析
  • 学习时间:3-4 天

05-并发模型与锁机制

  • 核心内容:Mutex、RWMutex、Atomic、信号量
  • 源码重点:sync/mutex.go、runtime/sema.go
  • 实战项目:自实现轻量级锁
  • 学习时间:2-3 天

第三阶段:网络与系统

06-网络模型与Netpoll

  • 核心内容:epoll 模型、pollDesc、异步 I/O
  • 源码重点:runtime/netpoll.go、runtime/netpoll_epoll.go
  • 实战项目:epoll server、性能测试
  • 学习时间:2-3 天

07-Runtime全景融合

  • 核心内容:整体架构、模块协作、Sysmon
  • 源码重点:各模块协同机制
  • 实战项目:综合示例
  • 学习时间:2-3 天

第四阶段:实战应用

08-性能优化实战

  • 核心内容:pprof、trace、逃逸分析、调优技巧
  • 工具重点:性能分析工具使用
  • 实战项目:性能调优案例
  • 学习时间:2-3 天

09-微服务架构实践

  • 核心内容:微服务框架设计、服务治理
  • 技术重点:gRPC、服务发现、熔断限流
  • 实战项目:轻量微服务框架
  • 学习时间:4-5 天

️ 学习工具准备

必需工具

  • Go 1.19+ 开发环境
  • Git 版本控制
  • 代码编辑器(推荐 VS Code 或 GoLand)

调试工具

  • go tool pprof - 性能分析
  • go tool trace - 调度追踪
  • GODEBUG=gctrace=1 - GC 追踪
  • go build -gcflags=-m - 逃逸分析

源码阅读

  • Go 官方源码:https://github.com/golang/go
  • 推荐版本:Go 1.21+(稳定且功能完整)

学习建议

学习方法

  1. 理论先行:先理解概念和架构设计
  2. 源码验证:通过源码验证理论理解
  3. 实战巩固:通过代码实现加深理解
  4. 性能验证:使用工具验证性能表现

学习顺序

  • 新手:按章节顺序学习,每章完成后进行实战练习
  • 有经验:可选择性学习,重点关注薄弱环节
  • 面试准备:重点学习 01、02、03、04、05 章节

实践建议

  • 每章至少完成 1-2 个实战项目
  • 使用 go test -race 检测并发问题
  • 定期使用性能工具验证优化效果
  • 参与开源项目,应用所学知识

相关资源

官方文档

  • Go 官方文档
  • Go 内存模型
  • Go 并发模式

推荐阅读

  • 《Go 语言设计与实现》- 左书祺
  • 《Go 语言并发编程实战》- 郝林
  • 《Go 语言圣经》- Alan Donovan

在线资源

  • Go 源码在线浏览
  • Go 性能优化指南
  • Go 并发模式

学习交流

如果在学习过程中遇到问题,建议:

  1. 查阅相关源码注释
  2. 使用调试工具分析
  3. 参考官方文档和社区讨论
  4. 参与 Go 技术社区交流

开始你的 Go 架构进阶之旅吧!

记住:源码是最好的老师,实践是检验真理的唯一标准。

Next
01-GMP调度模型深度解析