Go语言技术文章
-
context.AfterFunc 的 stop 函数只负责解除回调关联,并不等待回调结束。本文用取消清理场景说明 true、false 的含义,以及如何等待已启动回调完成。401 收藏 -
Golang · Go问答 | 3星期前 | HTTP · go · Context · net/http · Go net/http Transport goroutine泄漏 context取消 DialContext
自定义 http.Transport.DialContext 时,只有把请求 Context 传到真正可取消的等待点,才能避免连接 goroutine 长期滞留。本文用一个小型拨号器说明 net.Dialer.DialContext、自定义名额等待、Transport 接入、错误适配和 trace 排查的边界。314 收藏 -
Go 的 http.Transport 把 MaxIdleConnsPerHost 设为零时并不是禁止连接复用,而是回退到 DefaultMaxIdleConnsPerHost。本文拆开空闲连接、活跃连接、全局上限和 DisableKeepAlives 的区别,给出可直接调整的配置方式。326 收藏 -
Go Transport 的 MaxConnsPerHost 限制拨号、活动和空闲连接总数,达到上限可能让请求等待。本文用 HTTP/1 示例解释共享池、trace 信号和响应体释放,并说明 HTTP/2 与调参边界。165 收藏 -
Go 的 net/http.Client.Timeout 使用零值时代表不设总超时,连接、重定向和读取响应体都可能没有统一时间预算。本文解释零值语义,并给出 Client、Context 与 Transport 超时的分层写法。216 收藏 -
Golang · Go问答 | 3星期前 | HTTP · go · sse · net/http · net/http WriteTimeout SSE IdleTimeout Go HTTP 长连接空闲超时
Go net/http 的 IdleTimeout 主要管理 keep-alive 连接等待下一个请求,并不是 SSE 消息间隔计时器。本文区分 IdleTimeout、WriteTimeout、Flush、心跳和中间代理策略,给出一套可落地的 SSE 排查与处理方式。442 收藏 -
Go HTTP 服务的 ReadHeaderTimeout 限制请求头读取,ReadTimeout 限制整个请求读取。本文说明零值回退与配置迁移,给出服务示例及日志定位方法,区分读取失败与业务耗时。188 收藏 -
Go gzip.Writer 的 Name、ModTime、Comment 等字段会写入 gzip 文件头,但必须在第一次 Write、Flush 或 Close 之前设置。本文给出最小写法,并说明复用 Writer、读回元数据和字段边界。262 收藏 -
连续压缩多段独立数据时,可以保留一个 flate.Writer,用 Reset 切换输出目标并复用内部状态;Flush 只用于流未结束时刷出当前数据,Close 才完成最终收尾。297 收藏 -
Go 的 compress/zlib 可以用预置字典压缩具有固定重复片段的短消息。本文从适用条件出发,给出 NewWriterLevelDict 与 NewReaderDict 的配对写法,并说明 ErrDictionary、Close 和字典生命周期的处理边界。480 收藏 -
Go archive/tar 可以读取稀疏归档并暴露 SparseHoles,但标准 Writer 当前不能直接把 sparse map 编码成 GNU/PAX 稀疏条目。本文说明正确的 Header 表达、普通 tar 写法和兼容方案。193 收藏 -
跨语言二进制结构体经常因为 C 或 Python 的对齐填充导致 Go binary.Read 读错字段。本文用显式空白字段、固定字节序和完整错误处理,给出可移植的读取方式。397 收藏 -
Go database/sql 可以通过 driver.Connector 把驱动连接配置交给 sql.OpenDB。本文说明 Connector、*sql.DB 和连接池的职责边界,并给出统一配置、多个独立连接池及关闭处理的写法。183 收藏 -
Go sort.Find 可以同时返回有序切片中的命中下标和未命中时的插入位置。本文说明 cmp(i) 的方向、found 的判断、重复值边界与安全插入写法。272 收藏 -
Go text/template 默认会继续执行缺失的 map 字段。本文说明如何用 Option("missingkey=error") 让 Execute 立即返回错误,并比较 default、zero 与 error 的适用边界。468 收藏