Go 服务 goroutine 涨了,别先猜:按这条流程查 context 泄漏
线上 goroutine 数开始往上爬,最怕的不是它涨。
最怕的是你盯着监控看了十分钟,然后开始猜:是不是 context 泄漏了?是不是超时没生效?是不是某个 channel 卡住了?
这些猜法都有可能对,也都有可能错。 …
线上 goroutine 数开始往上爬,最怕的不是它涨。
最怕的是你盯着监控看了十分钟,然后开始猜:是不是 context 泄漏了?是不是超时没生效?是不是某个 channel 卡住了?
这些猜法都有可能对,也都有可能错。 …
很多 Go 开发者第一次系统用 context,都会嫌它啰嗦。
一个请求从 handler 进来,service 要传 ctx,repo 要传 ctx,RPC client 要传 ctx,连中间那些根本不关心超时和取消的函数,也要机械地把 …
线上接口开始超时,goroutine 数一路往上涨。
你第一反应可能是:不是已经传了 context.WithTimeout 吗?超时到了,goroutine 不就该停了吗?
这就是 Go context 最容易被误用的地方。 …