Go语言技术文章
-
数据库 · Redis | 3星期前 | Redis · 消息队列 · Stream · 故障恢复 · 消费者组 · redis streams 消息重试 消费者组 XAUTOCLAIM 积压消息 PEL
Redis Streams 消费者组出现积压时,XAUTOCLAIM 可以把超过最小空闲时间的 pending 消息交给健康消费者继续处理。本文用故障接管场景说明 start 游标、COUNT、JUSTID、重试次数和删除幽灵消息的验收边界。148 收藏 -
Go 回调接口是否都应该返回 error?从同步确认、异步投递和后台任务三个场景拆解接口设计,给出可落地的签名、错误归属和判断清单。382 收藏 -
Golang · Go教程 | 3星期前 | HTTP · 连接池 · Go教程 · 性能排查 · net/http · Go HTTP客户端 连接复用 Transport httptrace Response.Body
Go HTTP 客户端请求量上来后,如果 Response.Body 没有按路径读取并关闭,或每次请求都新建 Transport,连接池就很难稳定复用。本文从一个连接数异常的服务场景出发,用 httptrace 验收复用结果,并给出响应体、Transport 参数和回归检查的落地写法。397 收藏 -
Go 的 encoding/json 使用 omitzero 处理零值字段。本文用 time.Time、空切片和自定义 IsZero 场景,对比 omitempty 的判断并给出接口调整后的验收方法。158 收藏 -
线上接口偶发慢几百毫秒,等问题出现后再启动完整 trace 往往已经晚了。Go 1.25 的 runtime/trace.FlightRecorder 会把最近一段运行轨迹保存在内存环形缓冲区,异常触发时再导出,本文说明 MinAge、MaxBytes、Start、WriteTo 的最小用法和生产边界。279 收藏 -
Go 测试里 t.Setenv 会通过 Cleanup 恢复进程环境,但环境变量属于整个进程,不能与 t.Parallel 或并行父测试混用。本文用一个小型配置测试项目拆开这个限制,给出串行隔离、参数注入和子测试分组的选择边界。325 收藏 -
PWA 发布新版本后,用户仍看到旧页面,通常不是浏览器完全没有更新,而是旧页面、waiting 状态和缓存版本同时存在。本文用一个可落地的 Service Worker 更新流程,讲清缓存命名、skipWaiting、clients.claim、提示刷新和回滚检查。448 收藏 -
长列表页面首屏慢时,可以先用 content-visibility: auto 跳过屏外渲染,再用 contain-intrinsic-size 给布局一个合理占位。本文用一组可复现的列表场景说明如何测量收益、避免滚动条跳动,并给出不适合使用的边界。390 收藏 -
2026年七夕节是8月19日,星期三,对应农历丙午年七月初七。七夕不是全国统一法定节假日,安排约会、聚餐或出行时,应把公历日期、工作日和预约规则一起核对。316 收藏 -
Go 1.24 引入 encoding.TextAppender 和 BinaryAppender。本文从日志缓冲区场景出发,验证 AppendText 的追加语义、错误回退和分配边界。141 收藏 -
sync.Cond 的难点不是调用 Broadcast,而是让共享状态、锁和等待条件保持同一条时间线。本文用一个任务队列场景拆解 Wait、Signal、Broadcast 的正确顺序、常见误区与可验证写法。410 收藏 -
科技周边 · 业界新闻 | 4星期前 | pprof · 性能排查 · 业界新闻 · Go 1.26 · 运行时诊断 · goroutine泄漏 Go 1.26 goroutineleak runtime/pprof 生产诊断
Go 1.26 把实验性的 goroutineleak 画像放进 runtime/pprof,用来发现长期存活的 goroutine。本文结合官方发布信息和最小服务实验,说明它能解决什么问题、如何验证结果,以及为什么不应把实验性画像直接当成生产告警。471 收藏 -
Linux 临时目录里能创建文件却删除失败,通常要区分文件自身权限、父目录写入权限和 sticky bit 规则。本文用 /tmp 与专用工作目录说明 stat、namei、umask 和 tmpfiles.d 的检查顺序。331 收藏 -
Golang · Go问答 | 4星期前 | 并发 · time · 定时任务 · Timer · Ticker · Go问答 · 定时器 Go 定时任务 停止 time.Ticker time.After time.NewTimer
Go 里一次性超时、可重置等待和周期任务分别适合 time.After、time.NewTimer 与 time.Ticker。本文用三个小场景对比它们的触发语义、停止方式、慢任务边界和 Go 1.23 定时器变化,给出可直接复用的选择规则。144 收藏 -
Go 服务突然报 too many open files 时,先用 /proc/fd 和 lsof 判断文件描述符消耗,再检查 HTTP 响应体关闭、连接复用和 ulimit 配置,最后用指标与回滚手段确认修复有效。119 收藏