封面
版权信息
内容简介
前言
第1章 为什么要了解Go底层
1.1 Go服务怎么出现502状态码了
1.1.1 服务超时为什么导致502状态码
1.1.2 基于context的超时控制
1.2 Go服务为什么没响应了
1.2.1 谁阻塞了协程
1.2.2 写管道可以不阻塞协程吗
1.3 Uber如何通过GC调优节约7万个内核
1.3.1 GC概述
1.3.2 Uber半自动化GC调优
1.4 Go语言进阶路线
1.4.1 Go语言快速入门
1.4.2 Go高并发编程
1.4.3 Go语言项目实战
1.5 本章小结
第2章 Go语言并发模型
2.1 GMP调度模型
2.1.1 Go语言并发编程入门
2.1.2 GMP调度模型概述
- APP免费
2.1.3 深入理解GMP调度模型
- APP免费
2.2 协程管理
- APP免费
2.2.1 基础补充
- APP免费
2.2.2 协程创建
- APP免费
2.2.3 协程切换
- APP免费
2.2.4 协程栈会溢出吗
- APP免费
2.2.5 协程退出
- APP免费
2.3 调度器
- APP免费
2.3.1 调度器实现原理
- APP免费
2.3.2 时间片调度
- APP免费
2.3.3 基于协作的抢占式调度
- APP免费
2.3.4 基于信号的抢占式调度
- APP免费
2.4 本章小结
- APP免费
第3章 调度器触发时机
- APP免费
3.1 网络I/O
- APP免费
3.1.1 探索Go语言网络I/O
- APP免费
3.1.2 Go语言网络I/O与调度器
- APP免费
3.1.3 如何实现网络读写超时
- APP免费
3.2 管道
- APP免费
3.2.1 管道的基本用法
- APP免费
3.2.2 管道与调度器
- APP免费
3.3 定时器
- APP免费
3.3.1 定时器的基本用法
- APP免费
3.3.2 定时器与调度器
- APP免费
3.4 系统调用
- APP免费
3.4.1 系统调用会阻塞线程吗
- APP免费
3.4.2 系统调用与调度器
- APP免费
3.5 本章小结
- APP免费
第4章 Go语言并发编程
- APP免费
4.1 什么是并发问题
- APP免费
4.2 CSP并发模型
- APP免费
4.2.1 基于管道-协程的CSP模型
- APP免费
4.2.2 管道与select关键字
- APP免费
4.2.3 如何实现无限缓存管道
- APP免费
4.3 基于锁的协程同步
- APP免费
4.3.1 乐观锁
- APP免费
4.3.2 悲观锁
- APP免费
4.4 如何并发操作map
- APP免费
4.4.1 map的并发问题
- APP免费
4.4.2 并发散列表sync.Map
- APP免费
4.5 并发控制sync.WaitGroup
- APP免费
4.6 并发对象池sync.Pool
- APP免费
4.7 如何实现单例模式
- APP免费
4.8 并发检测
- APP免费
4.9 本章小结
- APP免费
第5章 GC原理、调度与调优
- APP免费
5.1 内存管理
- APP免费
5.1.1 如何设计动态内存分配器
- APP免费
5.1.2 Go语言内存分配器
- APP免费
5.1.3 Go语言内存管理
- APP免费
5.1.4 内存逃逸
- APP免费
5.2 三色标记与写屏障
- APP免费
5.2.1 三色标记
- APP免费
5.2.2 写屏障
- APP免费
5.3 标记与清理
- APP免费
5.3.1 垃圾回收执行阶段
- APP免费
5.3.2 经典的stopTheWorld
- APP免费
5.3.3 辅助标记
- APP免费
5.3.4 内存清理
- APP免费
5.4 GC调度与GC调优
- APP免费
5.4.1 GC触发时机
- APP免费
5.4.2 GC协程调度模式
- APP免费
5.4.3 缓存框架bigcache中的GC调优
- APP免费
5.5 本章小结
- APP免费
第6章 手把手教你搭建Go项目
- APP免费
6.1 Go项目架构设计
- APP免费
6.1.1 分层架构
- APP免费
6.1.2 代码布局
- APP免费
6.1.3 命令管理cobra
- APP免费
6.1.4 配置管理Viper
- APP免费
6.2 Web框架Gin
- APP免费
6.2.1 RESTful API
- APP免费
6.2.2 引入Gin框架
- APP免费
6.2.3 中间件
- APP免费
6.2.4 如何记录访问日志
- APP免费
6.3 日志与全链路追踪
- APP免费
6.3.1 引入日志框架Zap
- APP免费
6.3.2 基于context的全链路追踪
- APP免费
6.3.3 基于协程ID的全链路追踪
- APP免费
6.4 访问数据库
- APP免费
6.4.1 引入Gorm框架
- APP免费
6.4.2 CURD
- APP免费
6.4.3 事务
- APP免费
6.4.4 如何记录Trace日志
- APP免费
6.5 HTTP调用
- APP免费
6.5.1 go-resty框架概述
- APP免费
6.5.2 请求追踪
- APP免费
6.5.3 长连接还是短连接
- APP免费
6.5.4 如何记录Trace日志
- APP免费
6.6 单元测试
- APP免费
6.6.1 Go语言中的单元测试
- APP免费
6.6.2 引入单元测试
- APP免费
6.7 本章小结
- APP免费
第7章 高性能Go服务开发
- APP免费
7.1 分库分表
- APP免费
7.1.1 分库分表基本原理
- APP免费
7.1.2 基于Gorm的分表
- APP免费
7.2 使用Redis缓存
- APP免费
7.2.1 go-redis的基本操作
- APP免费
7.2.2 基于Redis的性能优化
- APP免费
7.3 使用本地缓存
- APP免费
7.3.1 自己实现一个LRU缓存
- APP免费
7.3.2 基于bigcache的性能优化
- APP免费
7.4 资源复用
- APP免费
7.4.1 协程复用之fasthttp
- APP免费
7.4.2 连接复用之连接池
- APP免费
7.4.3 对象复用之对象池
- APP免费
7.5 其他
- APP免费
7.5.1 异步化处理
- APP免费
7.5.2 无锁编程
- APP免费
7.6 本章小结
- APP免费
第8章 高可用Go服务开发
- APP免费
8.1 可用性定义与高可用三板斧
- APP免费
8.1.1 可用性定义
- APP免费
8.1.2 高可用三板斧
- APP免费
8.2 流量治理组件Sentinel
- APP免费
8.2.1 Sentinel快速入门
- APP免费
8.2.2 流量控制
- APP免费
8.2.3 系统自适应流量控制
- APP免费
8.2.4 熔断降级
- APP免费
8.2.5 Sentinel原理浅析
- APP免费
8.3 Go服务监控
- APP免费
8.3.1 运行时监控
- APP免费
8.3.2 自定义监控
- APP免费
8.4 其他
- APP免费
8.4.1 超时控制
- APP免费
8.4.2 错误处理
- APP免费
8.5 本章小结
- APP免费
第9章 Go语言微服务入门
- APP免费
9.1 Go语言RPC标准库
- APP免费
9.1.1 使用入门
- APP免费
9.1.2 原理浅析
- APP免费
9.2 微服务框架Kitex
- APP免费
9.2.1 使用入门
- APP免费
9.2.2 可扩展性
- APP免费
9.2.3 服务治理
- APP免费
9.3 本章小结
- APP免费
第10章 实现Go服务平滑升级
- APP免费
10.1 服务升级导致502状态码
- APP免费
10.2 Go语言信号处理框架
- APP免费
10.3 Go服务平滑退出
- APP免费
10.4 基于gracehttp的Go服务平滑升级
- APP免费
10.5 本章小结
- APP免费
第11章 Go服务调试
- APP免费
11.1 Go程序分析利器pprof
- APP免费
11.1.1 pprof概述
- APP免费
11.1.2 内存指标分析
- APP免费
11.1.3 CPU指标分析
- APP免费
11.1.4 锁与阻塞指标分析
- APP免费
11.2 性能分析工具Trace
- APP免费
11.3 使用dlv调试Go程序
- APP免费
11.3.1 Go语言调试工具dlv
- APP免费
11.3.2 dlv调试实战
- APP免费
11.4 本章小结
- APP免费
第12章 线上服务实战
- APP免费
12.1 两种导致502状态码的情况
- APP免费
12.1.1 panic异常
- APP免费
12.1.2 长连接为什么会导致502状态码
- APP免费
12.2 意想不到的并发问题
- APP免费
12.2.1 并发问题引起的JSON序列化异常
- APP免费
12.2.2 并发问题引起的服务发现故障
- APP免费
12.3 HTTP服务假死问题
- APP免费
12.3.1 写日志阻塞请求
- APP免费
12.3.2 防缓存穿透组件导致的服务死锁
- APP免费
12.4 HTTP客户端引发的问题
- APP免费
12.4.1 长连接还是短连接
- APP免费
12.4.2 偶现Connection reset by peer问题
- APP免费
12.5 类型不匹配导致的线上问题
- APP免费
12.5.1 一个双引号引起的线上事故
- APP免费
12.5.2 自定义JSON序列化与反序列化
- APP免费
12.6 其他问题
- APP免费
12.6.1 怎么总是空指针异常
- APP免费
12.6.2 诡异的超时问题
- APP免费
12.7 本章小结
- APP免费
作者简介
- APP免费
文后
更新时间:2024-09-11 17:36:33