Go教程技术文章
-
WithCancelCause 可以让调用链继续用 ctx.Err() 判断取消类别,同时通过 context.Cause(ctx) 保留超载、用户主动停止等业务原因。本文给出迁移写法和父子 Context 的边界清单。160 收藏 -
sync.OnceFunc 会把固定关闭回调与一次性状态封装成同一个可并发调用的函数,首次调用完成前其余调用者会等待。本文给出共享资源关闭写法,并比较 Once、原子标记、OnceValue 与单所有者方案的适用边界。387 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · 配置管理 · 并发编程 · go语言 · 工程实践 · Go并发 延迟加载 配置快照 sync.OnceValue sync.OnceValues
sync.OnceValue 适合把只加载一次的固定配置封装成并发安全的延迟函数。本文给出值语义快照写法,并说明引用类型、错误缓存、panic 重放、日志和热更新边界。462 收藏 -
讲清 Go sync.OnceValues 如何把初始化返回值与 error 一起缓存,说明并发调用、失败复用、panic 复用和不可重试边界。229 收藏 -
讲清 Go flight recorder 故障诊断端点的鉴权、单并发、临时文件快照、下载响应、测试与运行边界,给出可直接改造的 Handler。453 收藏 -
用 Go runtime/trace 的 Flight Recorder 保留延迟尖峰前的有限执行轨迹,配置 MinAge、MaxBytes,并在阈值触发时安全写出快照。493 收藏 -
多租户服务若共享可变 x509.CertPool,容易把一个租户的私有 CA 扩散给其他租户。本文通过故障复盘给出独立根池、TLS 绑定、轮换与测试方案。212 收藏 -
用 Go flight recorder 在内存中保留故障前的执行轨迹,按慢请求阈值写出一次快照,再用 go tool trace 定位阻塞根因。390 收藏 -
Golang · Go教程 | 1星期前 | TLS · Go教程 · Go x509 VerifyOptions ExtKeyUsageServerAuth ExtKeyUsageClientAuth mTLS证书用途
讲解 Go crypto/x509 VerifyOptions.KeyUsages 的服务器与客户端证书用途差异,给出显式验证函数、常见错误、TLS 配置映射和回归测试清单,避免空 KeyUsages 默认值与 ExtKeyUsageAny 带来的误判。341 收藏 -
介绍 Go 1.24 及以上如何使用 crypto/x509 的 CertificatePolicies 限制证书链策略 OID,并说明策略图、anyPolicy、版本边界和排查方法。267 收藏 -
介绍 Go 1.24+ 使用 http.Server.Protocols 开启明文 HTTP/2 的方法,涵盖同端口兼容、客户端核对、安全边界与审计清单。328 收藏 -
反向代理要控制上游协议,关键是给 ReverseProxy 配置自定义 Transport.Protocols,而不是只修改入口 Server.Protocols。本文用 Go 代码说明 HTTP/1、TLS HTTP/2、明文 HTTP/2 的选择、回滚与排查边界。330 收藏 -
Go 1.24 起可用 http.Server.Protocols 显式限定服务端协议集合。本文给出只启用 HTTP/1 与 TLS HTTP/2 的最小写法、完整服务代码、客户端协商检查,以及明文 HTTP/2、旧 TLSNextProto 配置和反向代理场景的兼容边界。460 收藏 -
Go 的 ResponseController.EnableFullDuplex 允许 HTTP/1 Handler 在请求体尚未结束时交错读取与写响应,但它并不 Hijack 底层连接。本文给出逐块读取、逐块确认的完整写法,并说明包装器、截止时间、HTTP/2 与代理缓冲边界。199 收藏 -
Go 代理要把上游响应逐块交给客户端时,可用 ResponseController 统一调用 Flush,并处理包装器、客户端断开、HTTP/2 与反向代理缓冲等边界。491 收藏