首页 文章 精选 留言 我的
优秀的个人博客,低调大师

微信关注我们

原文链接:https://cloud.tencent.com/developer/article/2780492

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

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

线上有个 Go 服务,调用下游 HTTP 接口超时后客户端会重试,结果偶尔出现重复写入。排查后发现是 context 的超时设置和重试逻辑耦合在一起:外层给整个请求设了 3 秒 deadline,内层 HTTP client 又自己设了 2 秒超时,重试时复用同一个 context,导致第二次调用其实已经过期,直接返回 context deadline exceeded。同时下游接口本身不是幂等的,重试就产生了重复数据。这个问题在分布式调用里很常见,尤其是链路一长,每个环节都自己设超时、自己加重试,最后行为...

Node.js 中 stream 背压处理不当导致的内存泄漏排查与修复

线上一个日志转发服务在运行一周后内存持续上涨,最终触发 OOM 重启。用 heap snapshot 对比发现大量 Buffer 实例堆积在可读流的内部队列中,调用栈指向一个用 pipe 串联多路数据源到下游 HTTP 请求的模块。这个场景并不罕见:当可写端处理速度跟不上可读端生产速度时,Node.js 的 stream 会通过 highWaterMark 机制发出背压信号,但很多实现要么忽略了 write() 的返回值,要么在自定义 Transform 中无条件 push(),导致数据在内存里越积越多。本...

相关文章

发表评论

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册