-
围绕 Go 1.24 map Swiss Tables 新实现,讲清控制字节、开放寻址、缓存局部性、内存占用、删除场景和线上基准验证方法。218 收藏 -
goget在Go1.18+默认不修改go.mod,仅当在含有效go.mod的模块根目录运行时才更新依赖;安装工具应优先用goinstall;指定版本需用@vX.Y.Z格式,私有库需配置GOPRIVATE。217 收藏 -
生产环境必须同时监听SIGTERM和SIGINT以支持优雅关闭,仅监听SIGINT会导致容器或systemd下强制终止;Shutdown前需先关闭listener,context超时应比平台终止宽限期短5s,并排查goroutine泄漏。209 收藏 -
Go中不存在安全可靠的“先检查再发送”模式,因channel关闭是单向承诺而非可探测状态;唯一安全方式是send-or-die:发送方须独占channel所有权并负责其生命周期管理。206 收藏 -
Golang · Go教程 | 2天前 | 超时控制 · 故障排查 · Go教程 · 后端工程 · Golang实战 · HTTP客户端 · golang Go 性能优化 net/http context Transport 超时 http.Client 生产实践
从一次下游接口卡死导致 goroutine 和连接堆积的事故出发,讲清 Go http.Client Timeout、Transport 超时、Request Context、连接复用、重试边界和上线检查。205 收藏 -
database/sql的Query和Exec不暴露执行耗时,因标准库抽象屏蔽了驱动细节,返回值无耗时字段,必须在调用链路中手动包裹计时逻辑或通过Context超时机制拦截。203 收藏 -
从 GOFIPS140、GODEBUG=fips140 到 TLS 限制、CI 审计和灰度上线,讲清 Go 原生 FIPS 140-3 模式在真实项目里应该怎么落地。203 收藏 -
Pebble的compaction触发逻辑需设L0CompactionThreshold=4、L0StopWritesThreshold=12,并禁用DisableWAL;避免L0文件堆积导致读延迟飙升,确保写入阻塞前及时触发合并。201 收藏 -
sync.Map不适合高频配置读取,因Load需原子操作和指针跳转,比RWMutex读慢2–3倍;它不支持可靠遍历,Store可能触发dirty提升引发毛刺;纯读多场景应选RWMutex+带版本号map。199 收藏 -
Golang · Go教程 | 1天前 | errgroup · Context · Go教程 · 后端工程 · Golang实战 · 并发治理 · golang Go 并发编程 错误处理 context errgroup 后端工程 生产实践 SetLimit
从批量调用下游接口的并发扇出场景出发,讲清 errgroup.WithContext、Go、Wait、SetLimit、TryGo、错误传播、Context 取消和结果聚合的生产写法。197 收藏 -
gopsutil的CPU和内存数值与top、free不一致,因默认返回累计值而非瞬时率;CPU需两次调用取差值,内存应基于Available计算真实使用率,磁盘IO需限定设备并加超时控制。195 收藏 -
runtime.Goexit仅用于goroutine内主动退出且不执行defer;runtime.Gosched是让出P的时间片而非挂起goroutine,不可替代sleep。193 收藏 -
本文详解Go服务端如何区分并正确解析浏览器提交的application/x-www-form-urlencoded表单数据和工具发起的application/json请求,避免因Content-Type不匹配导致的解码失败。193 收藏 -
Go1.6的goinstall命令在交叉编译时会自动将二进制文件放入$GOPATH/bin/<os>_<arch>/子目录(如linux_386),无法通过内置参数更改;需改用gobuild-o显式指定输出路径,实现跨平台编译与本地编译统一部署到$GOPATH/bin/。Go1.6的`goinstall`命令在交叉编译时会自动将二进制文件放入`$GOPATH/bin/_/`子目录(如`lin193 收藏 -
用sync.WaitGroup等待goroutine完成:Add(1)必须在go前调用,Done()推荐defer调用;需多个goroutine但只取首个结果时,用select监听同类型channel实现“firstresultwins”。191 收藏