首页
学习
活动
专区
圈层
工具
发布

#go

静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言

从反复手动拉起服务到开机自启:跨平台进程管理器的实现过程

用户11751595

我有台机器常年开着,上面跑几个自建服务:一个同步脚本、一个本地 API,偶尔还有 WSL 里的东西。麻烦的不是让它们跑起来,而是每天开机之后那几分钟,挨个进目录...

400

Go 服务里处理超时与重试的几个关键细节:context、deadline 和幂等性

用户12771345

线上有个 Go 服务,调用下游 HTTP 接口超时后客户端会重试,结果偶尔出现重复写入。排查后发现是 context 的超时设置和重试逻辑耦合在一起:外层给整个...

1800

Go 服务中 http.Server 的 Shutdown 为什么没有关闭连接?

用户11716263

线上有个 Go 写的 HTTP 服务,每次发布滚动重启时,监控会看到一批 502,持续几秒到十几秒不等。排查后发现是优雅退出没生效:进程收到 SIGTERM 后...

900

Go 服务内存持续上涨?从一次 pprof 排查说起

用户1839651

线上一个 Go 写的推送服务运行几天后 RSS 从 200MB 涨到 1.2GB,但 heap profile 显示活跃对象只有 80MB 左右,GC 也正常触...

900

Go 中 time.Ticker 没 Stop 导致协程泄漏,排查一个线上 goroutine 暴涨问题

用户1839651

线上一个用 Go 写的定时任务服务在运行两天后 goroutine 数量从几百涨到了三万多个,内存占用也跟着上去,但 QPS 和业务处理量并没有明显变化。用 p...

1200

深度拆解 YSL语枢·盾甲 WAF:一款纯 Go 架构的下一代反向代理网关

暗夜铭少

在给云上业务选型 WAF(Web 应用防火墙)时,大家经常面临一个两难的境地:传统开源 WAF 误报率极高且规则陈旧;而新兴的某些商业 WAF 又过度依赖微服务...

1700

Go 服务中 time.Ticker 未停止导致的内存泄漏与 goroutine 堆积排查

用户11716263

线上一个用 Go 写的推送服务跑了两周后内存从 80MB 涨到 600MB 以上,pprof 显示 goroutine 数量从启动时的几十个涨到两万多,而且基本...

4710

Go 服务内存泄漏排查:从 goroutine 堆积到连接池误用

用户1839651

线上一个 Go 写的 API 网关运行几天后 RSS 持续上涨,重启后恢复,pprof 显示堆内存并不高,但 goroutine 数量从启动时的几百涨到几万。这...

3310

Go 服务中 HTTP 连接复用的一个坑:为什么你的 Keep-Alive 没生效

超哥前端记录

线上有个 Go 写的内部 API 网关,最近下游服务反馈连接数偏高,而且每次请求的 TCP 建连耗时明显。网关本身用的是标准库 net/http,客户端也按常规...

5310

Go 服务中 context 取消没生效?检查一下你传的是不是 context.Background()

用户1839651

线上一个 Go 服务在压测时 goroutine 数量持续上涨,pprof 显示大量 goroutine 卡在数据库查询和下游 HTTP 调用上,但上游请求早就...

8010

Go 服务中 sync.Pool 用错反而拖慢性能?从一次压测说起

用户11716263

线上一个 Go 编写的网关服务在压测时吞吐量上不去,pprof 显示 GC 频率异常高,trace 里大量时间花在对象分配和标记清理上。团队最初怀疑是日志拼接或...

6210

Go 服务中 context 取消不生效导致 goroutine 泄漏的排查与修复

用户12771345

线上一个用 Go 写的 HTTP 服务跑了几周后内存缓慢上涨,pprof 看到 goroutine 数量从几百涨到上万不回落。服务逻辑不复杂:接收请求后启动几个...

9210

Go 服务中 context 取消信号为什么没传到下游?一个真实调用链的排查记录

用户12771345

线上有个 Go 服务偶尔出现 goroutine 堆积,pprof 显示大量 goroutine 卡在 HTTP 请求和数据库查询上,明明上游已经超时返回了,下...

5310

Go 服务在 Kubernetes 中优雅关闭:从信号处理到连接 draining 的完整链路

用户11716263

在 Kubernetes 里滚动更新或缩容时,Pod 收到 SIGTERM 后如果直接退出,正在处理的 HTTP 请求、gRPC 调用和后台任务会被硬中断,客户...

9510

深入理解 Go 的 context.WithCancel 及其在 HTTP 请求中的资源泄漏问题

超哥前端记录

Go 的 context 包几乎在每个生产项目里都会用到,但 context.WithCancel 创建的 cancel 函数如果忘记调用,会导致父 conte...

7910

告别手敲 iptables!纯 Go 单文件网络防火墙:内核级拦截与 30 秒防锁死实战

暗夜铭少

在腾讯云上买了一台轻量应用服务器,第一件事往往是配置安全组。但如果你想在服务器内部做更精细的流量管控(比如按国家封锁海外恶意扫描、做并发连接限制),就不得不面对...

12910

从一张 403 拦截页说起:拆解纯 Go 语言 WAF 的“确定性”防御逻辑

暗夜铭少

在安全运维中,最怕的不是被攻击,而是“不明不白地被攻击”或“不明不白地拦了业务”。最近在测试一款基于纯 Go 写的反向代理 WAF(YSL 语枢·盾甲 WAF ...

9600

Go 中 time.Ticker 使用不当导致的内存泄漏与 goroutine 堆积

用户1839651

在 Go 服务里用 time.Ticker 做定时任务很常见,比如定期刷新缓存、上报指标、清理过期连接。但很多人只在 for range ticker.C 里处...

11410

Go 服务中使用 database/sql 连接池时,为什么你的连接数总是降不下来

用户1839651

线上一个 Go 写的订单查询服务,每天上午十点高峰过后,MySQL 的活跃连接数一直维持在 200 以上不回落,而实际 QPS 已经掉到个位数。DBA 那边开始...

11410
领券