golang
已收录文章:43篇
-
应直接使用github.com/sony/gobreaker,禁止在外层包装http.Get或cb.Execute;必须实现自定义RoundTripper,在RoundTrip中调用cb.Execute并透传*http.Request和req.Context(),同时按P95耗时设Timeout、按错误类型过滤ReadyToTrip。255 收藏
-
服务熔断通过自动切断故障依赖防止系统雪崩,gobreaker库以轻量方式实现该机制,支持状态监控与灵活配置,建议结合超时、重试策略及监控体系提升系统稳定性。329 收藏
-
不能直接用rate.NewLimiter做三维度限流,因其无key概念,所有请求共享同一令牌桶;必须为每个IP+用户ID+接口路径组合创建独立limiter实例,并用sync.Map安全存取、定时清理过期项。215 收藏
-
container/heap/v2尚未进入标准库,因其仍是提案(Goissue#64287),未被合并到任何已发布版本;当前只能使用需指针接收器的旧版,且Push/Pop必须用指针调用。235 收藏
-
结论:用http.HandlerFunc包一层可将普通函数转为http.Handler,但签名必须严格匹配func(http.ResponseWriter,*http.Request);否则编译报错。224 收藏
-
Go热点探测核心是统计本身需实时、低开销、可淘汰:对已知key用atomic.Int64计数;动态key用分片map+Mutex;LFU缓存可复用freq字段,需衰减防历史累积;探测须嵌入数据生命周期关键节点。221 收藏