Go教程技术文章
-
Go 服务调用外部 HTTP 接口时,如果没有设置超时,慢接口可能让请求一直等待。本文从复现现象开始,逐步定位原因,并给出 Client.Timeout 与 context 截止时间两种可靠写法。115 收藏 -
Golang · Go教程 | 1个月前 | errgroup · go · Context · 并发编程 · SetLimit · Go 并发任务 errgroup SetLimit context取消
Go 后端经常需要并发查询多份数据。本文按完整工作流拆解 errgroup.WithContext、错误取消、SetLimit 控制并发、互斥收集结果和 Wait 统一检查,避免任务失控。301 收藏 -
Golang · Go教程 | 1个月前 | map · 并发安全 · RWMutex · sync.Map · Go教程 · 并发安全 RWMutex sync.Map Go map并发读写 go test race
Go 原生 map 不能在无保护情况下并发读写。本文用完整工作流拆解:先复现 fatal error,再用 race 检查定位,随后用 RWMutex 修复,并说明分片 map 和 sync.Map 的选型边界。272 收藏 -
本文用商品详情接口讲清 Go singleflight 的用法:缓存未命中时把同一个 key 的并发请求合并成一次查询,回填缓存后共享结果,并补上超时和兜底处理。114 收藏 -
用一个 Go 服务配置管理场景讲清楚热更新的稳定写法:启动时加载配置,监听文件变化,先解析校验再用 atomic.Value 替换运行时配置,错误配置不覆盖旧值,让服务无需重启也能安全生效。458 收藏 -
本文用 Go 泛型实现切片保序去重,并进一步扩展到结构体按字段去重,讲清 comparable 约束、seen map、首条保留和常见边界处理。501 收藏 -
本文用订单查询场景,演示 Go 中如何用 fmt.Errorf 包装错误、用 errors.Is/As 判断根因和业务错误码,并在 HTTP 层统一返回清晰响应。413 收藏 -
本文用 Go 标准库实现一个轻量令牌桶限流器,演示如何按固定速率补充令牌、限制突发请求,并把它接入 HTTP 中间件保护高频接口。484 收藏 -
本文用一个完整 Go HTTP 服务示例,讲清楚如何在收到 SIGTERM 后先摘流,再等待请求完成,最后用超时上下文关闭服务,避免发布和重启时丢请求。340 收藏 -
用服务配置文件解析场景讲清楚 Go 处理 JSON 的稳定写法:用结构体标签承载字段映射,先填默认值,再用 decoder 检查未知字段,最后得到类型明确的配置对象。301 收藏 -
用批量处理任务场景讲清楚 Go worker pool 的实现方式:任务进入 jobs channel,固定数量 goroutine 消费任务,结果统一写入 results channel,并通过 close 和 WaitGroup 安全收尾。459 收藏 -
通过一个后端服务调用第三方接口的案例,演示 Go context.WithTimeout、defer cancel、HTTP 请求取消、错误判断和常见坑,避免接口一直等待。346 收藏 -
把日志、指标、链路追踪和 pprof 串成 Go 服务故障复盘模板,形成可复用的排查闭环。710 收藏 -
讲解 Go 服务调用下游时如何设置超时预算、退避重试、熔断状态和可观测指标。687 收藏 -
从 errors.Is、errors.As、结构化日志和指标标签出发,设计能定位问题又不会刷屏的告警体系。664 收藏