Go语言技术文章
-
Golang · Go问答 | 3星期前 | 标准库 · Context · 并发编程 · go语言 · 错误排查 · 后台任务 Deadline context取消 context.WithoutCancel Go排查
context.WithoutCancel 本身不会返回 Deadline,但后台任务仍可能从新派生的 WithTimeout 或误用的原始请求 Context 获得时间边界。本文用最小探针定位来源,并给出保留上下文值、脱离请求取消且仍可回收的写法。374 收藏 -
Golang · Go教程 | 3星期前 | 标准库 · 配置管理 · 并发编程 · go语言 · 工程实践 · Go并发 延迟加载 配置快照 sync.OnceValue sync.OnceValues
sync.OnceValue 适合把只加载一次的固定配置封装成并发安全的延迟函数。本文给出值语义快照写法,并说明引用类型、错误缓存、panic 重放、日志和热更新边界。462 收藏 -
Golang · Go问答 | 3星期前 | 错误处理 · Context · 并发编程 · go语言 · Go context context.Cause 取消原因 WithCancelCause CancelCauseFunc
context.Cause 返回父级原因,是因为父级取消会向子级传播,而子级或任一父级的首次取消会固定该子级的 cause。本文用两种取消顺序说明 Err、Cause、超时和 WithoutCancel 的边界。102 收藏 -
讲清 Go sync.OnceValues 如何把初始化返回值与 error 一起缓存,说明并发调用、失败复用、panic 复用和不可重试边界。229 收藏 -
对比 Go FlightRecorder 与 trace.Start 持续 execution trace 的触发时机、数据范围和资源边界,并用可切换小项目给出选型方法。358 收藏 -
讲清 Go flight recorder 故障诊断端点的鉴权、单并发、临时文件快照、下载响应、测试与运行边界,给出可直接改造的 Handler。453 收藏 -
Go flight recorder 导出的时间线不完整,常见原因是移动窗口已淘汰早期事件、记录器启动或快照触发过晚、MaxBytes 覆盖 MinAge、只采到单个进程,或把真实阻塞误认成数据缺失。本文给出逐项判断与修正方法。253 收藏 -
Go flight recorder 的缓冲区太小时不会按事件类型选择性丢弃,而会淘汰较老的完整 trace generation。本文解释 MaxBytes 与 MinAge 的优先级、会缺失的上下文及容量配置方法。354 收藏 -
Go 容器中的 SystemCertPool 为空或加载失败时,按根证书文件、SSL_CERT 路径、镜像依赖和私有 CA 四层定位并修复。233 收藏 -
用 Go runtime/trace 的 Flight Recorder 保留延迟尖峰前的有限执行轨迹,配置 MinAge、MaxBytes,并在阈值触发时安全写出快照。493 收藏 -
多租户服务若共享可变 x509.CertPool,容易把一个租户的私有 CA 扩散给其他租户。本文通过故障复盘给出独立根池、TLS 绑定、轮换与测试方案。212 收藏 -
用 Go flight recorder 在内存中保留故障前的执行轨迹,按慢请求阈值写出一次快照,再用 go tool trace 定位阻塞根因。390 收藏 -
Go 1.24 为 crypto/x509 增加证书策略验证后,证书链能建立并不代表满足指定策略 OID。本文从版本、Policies 字段、CertificatePolicies、策略图和中间证书集合五个方面定位失败原因。329 收藏 -
Golang · Go教程 | 3星期前 | TLS · Go教程 · Go x509 VerifyOptions ExtKeyUsageServerAuth ExtKeyUsageClientAuth mTLS证书用途
讲解 Go crypto/x509 VerifyOptions.KeyUsages 的服务器与客户端证书用途差异,给出显式验证函数、常见错误、TLS 配置映射和回归测试清单,避免空 KeyUsages 默认值与 ExtKeyUsageAny 带来的误判。341 收藏 -
Go 的 x509 Verify 即使已加载根证书,也可能因 PEM 未解析、使用了不同 Roots、缺失中间证书或 CA 约束不成立而返回 unknown authority。本文用加载布尔值、签名关系和返回链数量逐层定位并修复。425 收藏