golang
已收录文章:13663篇
-
使用gobreaker实现熔断,通过Closed、Open、Half-Open状态防止雪崩;结合rate.Limiter令牌桶限流控制流量洪峰;二者封装为中间件提升复用性,增强系统稳定性。239 收藏
-
Go函数调用开销可通过基准测试量化,1.25纳秒左右的差异在高频场景下可能累积显著;编译器内联可消除此开销,但复杂参数或栈逃逸会增加成本,需通过Benchmark对比直接计算与函数调用、结构体传值与传指针等场景,结合-gcflags="-m"分析内联情况,并避免测试中变量未使用等误区,以准确评估性能影响。229 收藏
-
使用中间件生成并传递TraceID,结合日志输出与跨服务传递,实现请求追踪;可通过OpenTelemetry构建标准化分布式追踪体系。240 收藏
-
使用sync.RWMutex+map可实现带过期机制的线程安全缓存,适合需精细控制的场景;高频读、键集稳定的场景可用sync.Map提升性能;通过后台goroutine定期清理过期项,结合实际需求选择方案。221 收藏
-
使用Go标准库image及第三方库实现图片处理,支持裁剪、缩放、水印、格式转换等操作。2.读取写入需导入对应解码器,如image/jpeg。3.裁剪通过Bounds截取,缩放用golang.org/x/image/draw插值。4.水印通过draw.Draw叠加图层或文字。5.格式转换时JPEG可设Quality参数控制质量,PNG和GIF分别用png.Encode和gif.DecodeAll处理动画帧。6.日常处理纯Go足够,高性能需求可结合C库或专用服务。328 收藏
-
使用缓冲区重定向日志输出可有效测试日志行为,通过log.SetOutput(&buf)捕获内容并断言,确保函数按预期打印日志,同时用defer恢复默认输出以实现测试隔离。188 收藏