golang文章整理

coder_learn

只争朝夕,不负韶华!

golang:

  • 《Go语言编程入门与实战技巧》-黄靖钧
  • 《Go语言核心编程》-李文塔
  • 《Go编发编程实战》-郝林
  • 《Go语言编程》-许式伟
  • 《Go程序设计语言》-译本 Go语言圣经
  • 《Go语言学习笔记》-雨痕
  • 《Go 语言设计与实现》
  • 《Go语言高级编程》- 柴树杉,曹春晖
  • 《go语言101》

mysql :

  • mysql45讲
  • mysql必知必会

计算机组成原理:

  • 深入理解计算机系统
  • 深入浅出计算机组成原理(极客时间)

算法:

  • 数据结构与算法之美 (极客时间)

redis:


etcd:

分布式锁:
etcd
redis redlock
consul
  • 高可用分布式存储 etcd 的实现原理
  • 源码分析golang consul分布式锁lock delay问题
  • 分布式一致性raft算法实现原理
  • Golang使用redigo实现redis的分布式锁
  • [etcd技术内幕]-百里~

内存分配
  • 图解Go语言内存分配
  • strace分析追踪malloc申请内存过程
  • go内存分配那些事,就这么简单
  • go内存分配器可视化指南(go语言中文网)
  • TCMalloc:Thread-Caching Malloc
  • Golang源码探索(三) GC的实现原理
  • [第九章 虚拟内存(深入理解计算机系统)]
  • 内存分配器
  • 栈空间管理

内存泄漏
  • 一起 goroutine 泄漏问题的排查
  • 实战Go内存泄露
  • slice类型内存泄漏的逻辑(曹大)
  • 分析golang time.After引起内存暴增OOM问题
  • 探究golang的channel和map内存释放问题

连接池
  • 使用golang协程池控制并发请求
  • golang通用自定义连接池的实现
  • 解决golang redis连接池的io异常BUG?
  • 深入研究golang net/http连接池可用性
  • golang grpc网关使用连接池提吞吐量

channel
  • 深度解密Go语言之channel
  • Golang并发:再也不愁选channel还是选锁
  • channel-draveness
  • golang channel提前close丢失数据?

  • golang多场景下RwMutex和mutex锁性能对比
  • golang log日志里为什么需要加锁?
  • 通过golang goroutine stack分析死锁问题
  • 扩展golang的sync mutex的trylock及islocked
  • golang新版如何优化sync.pool锁竞争消耗?

context
  • 深度解密Go语言之context
  • 上下文context
  • 源码分析context的超时及关闭实现

map
  • 深度解密Go语言之 map
  • map并发崩溃一例(非线程安全)(曹大)

scheduler
  • 深度解密Go语言之 scheduler
  • 调度器-draveness
  • golang密集场景下协程调度饥饿问题

error
  • Golang error 的突围

pprof
  • 深度解密Go语言之 pprof
  • golang pprof分析net/http的性能瓶颈
  • 通过火焰图排查golang json的性能问题
  • Golang使用pprof监控性能及GC调优

内存重排
  • 曹大谈内存重排

unsafe
  • 深度解密Go语言之unsafe

reflect
  • 深度解密Go语言之反射
  • 反射-dravness

slice
  • 深度解密Go语言之Slice

逃逸分析:栈与堆
  • Golang之变量去哪儿?

defer
  • Golang之轻松化解defer的温柔陷阱
  • defer-draveness

interface
  • 深度解密Go语言之关于 interface 的10个问题
  • 接口-draveness

编译-链接-运行
  • Go 程序是怎样跑起来的

sync
  • Golang并发的次优选择:sync包
  • golang新版如何优化sync.pool锁竞争消耗?
  • go sync.pool []byte导致grpc解包异常
  • 扩展go sync.map的length和delete方法

select
  • Golang并发模型:轻松入门select
  • Golang并发模型:select进阶
  • select
  • Golang利用select实现goroutine的超时控制

make  new
  • make 和 new

time
  • 定时器-draveness
  • 完全兼容golang定时器的高性能时间轮实现(go-timewheel)
  • 源码分析go time.timer和ticker的stop问题
  • 分析golang time.After引起内存暴增OOM问题
  • 分析golang定时器CPU使用率高的现象
  • golang随机time.sleep的Duration问题

函数
  • 函数调用-draveness

  • 关于golang的panic recover异常错误处理

array
  • 数组-draveness

slice
  • slice-draveness

struct
  • 一个空struct的坑(曹大)

MPG
  • 为什么 Go 模块在下游服务抖动恢复后,CPU 占用无法恢复(曹大)
  • disk io引起golang线程数暴涨的问题

gomaxprocs
  • golang gomaxprocs调高引起调度性能损耗

runtime
  • runtime.stack加锁引起高时延及阻塞
  • 万字长文深入浅出 Golang Runtime
  • 系统监控

grpc
  • golang grpc网关使用连接池提吞吐量

http
  • 源码解析http shutdown优雅退出的原理

Grpc protobuf
  • Grpc protobuf的动态加载及类型反射实战
  • 深入 ProtoBuf - 简介

database/sql
  • 分析golang sql连接池大量的time wait问题

udp
  • 关于golang udp的高性能优化

log
  • Golang logrus的高级配置(hook, logrotate)
  • 使用golang log库包实现日志文件输出

crontab
  • 开源golang兼容crontab的定时任务管理器

monkey补丁
  • 使用monkey补丁替换golang的标准库
  • 通过火焰图排查golang json的性能问题

redis
  • Golang使用redigo实现redis的分布式锁
  • Golang使用redis protocol实现pubsub通信
  • golang基于redis lua封装的优先级去重队列
  • Golang基于redis实现的分布式信号量(semaphore)
  • golang redigo lua解决性能问题

粘包
  • 解决golang开发socket服务时粘包半包bug

你可能感兴趣的:(go)