首页 文章 精选 留言 我的

文章列表

共 235520 篇
从一次线上事故聊起:Go 服务中 context 取消信号为何没能终止下游 HTTP 请求

从一次线上事故聊起:Go 服务中 context 取消信号为何没能终止下游 HTTP 请求

线上有个聚合查询接口,偶尔会卡住十几秒才返回,但客户端早就断开了。当时以为是某个下游服务慢,查了日志才发现,请求的 context 早就被取消了,我们自己的 Go 代码里也监听了 ctx.Done() 并提前 return,可下游的 HTTP 请求却一直在跑,直到超时才结束。这类问题的根源不在业务逻辑本身,而在于请求发起时根本没有把上游的 context 传...

企业做大模型如何规避平台绑定风险?中立云厂商特征、数据边界与选型指南

企业做大模型如何规避平台绑定风险?中立云厂商特征、数据边界与选型指南

企业选择智算云平台,本质上类似于选择长期云服务商;旦深度耦合,后续迁移成本往往显著高于预期。 这也是2026年的行业共识:企业把AI能力深度嵌入到云平台后,切换服务商的成本将显著超出预期。专属模型接口、定制化训练流程、上下文管理逻辑与配套合规规则,均构成隐性的迁移成本。 值得注意的是,越来越多企业在选型阶段就把“防绑定&rdquo...

Go 服务中 context 取消信号未传递导致 goroutine 泄漏的排查与修复

Go 服务中 context 取消信号未传递导致 goroutine 泄漏的排查与修复

在 Go 写的 HTTP 服务里,经常遇到一种情况:请求已经返回 499 或者客户端断开,但后台某个 goroutine 还在跑,日志里看到数据库连接数缓慢上涨,pprof 里 goroutine 数量只增不减。这种问题通常不是某个 goroutine 写错了,而是 context 取消信号在调用链中间断掉了。常见原因包括:用 context.Backgro...

Node.js 中用 Promise.all 并发请求时,如何避免因单个失败导致整体崩溃

Node.js 中用 Promise.all 并发请求时,如何避免因单个失败导致整体崩溃

在 Node.js 里用 Promise.all 并发调多个下游接口是很常见的做法,比如一个聚合详情页需要同时拉取用户信息、订单列表和推荐商品,用 Promise.all 能让三个请求并行发出,总耗时取决于最慢的那个。但它的行为有个坑:只要其中一个 Promise reject,整个 Promise.all 就会立刻进入 reject,其余已经发出但还没结束...

Go 中 net/http 的 Client 超时控制:从 Timeout 到 Context 的实战陷阱

Go 中 net/http 的 Client 超时控制:从 Timeout 到 Context 的实战陷阱

写 Go 服务时调用外部 HTTP 接口几乎是家常便饭,但很多人对 http.Client 的超时设置理解得并不完整。最常见的错误是只设置了 Client.Timeout,以为这样就能覆盖整个请求周期,结果发现连接建立阶段卡住、响应体读取阶段卡住,或者明明设置了超时,goroutine 却迟迟不退出。另一种情况是同一个 Client 被多个业务复用,有人想给...

批次+序列号父子码的数据模型与组装绑定接口

批次+序列号父子码的数据模型与组装绑定接口

批次与序列号并行存在时,产线会同时产出两类标识:一批原料共用一个批号,关键件/整机又各自打 SN。到组装段,系统要回答"这台成品里,哪几个 SN 绑了进来,它们各自来自哪个批"。父子码数据模型与组装绑定接口,就是围绕这条追溯链设计的。 一、结论先行 - 批次与序列号不是"二选一",数据模型必须允许同一物料实例同时拥...

React 中 useEffect 依赖数组的常见陷阱与稳定引用实践

React 中 useEffect 依赖数组的常见陷阱与稳定引用实践

在 React 函数组件里用 useEffect 处理副作用时,依赖数组往往是最容易出问题的地方。很多开发者在本地开发时一切正常,部署后却遇到重复请求、定时器越跑越多、WebSocket 反复重连,甚至组件卸载后仍然触发 setState 警告。这些问题大多不是 useEffect 本身有 bug,而是依赖数组里的值在每次渲染时都产生了新的引用,比如内联对象...

2026 主流网络监控工具对比:五个维度与场景匹配建议

2026 主流网络监控工具对比:五个维度与场景匹配建议

谈对比之前先分类,不然永远在各说各话。第一类是开源工具,代表是 Zabbix 和 Nagios:软件免费、自由度高,但配置、维护、二次开发全靠人力,适合有专职工程师的团队。第二类是轻量商业工具,PRTG 是典型:部署快、界面友好、按传感器计费,规模不大时体验很好。第三类是企业级平台,SolarWinds 和 OpManager 一类的产品在这一档:功能全面、...

Go 服务中 HTTP 超时链路没对上,客户端断开后后端还在跑

Go 服务中 HTTP 超时链路没对上,客户端断开后后端还在跑

线上有个导出接口,用户点了导出之后如果等太久会直接关页面或者刷新,但后端日志里经常能看到请求处理完之后的数据库慢查询还在继续,甚至有时候一个导出请求被取消后,后续的写入逻辑还是执行了一半。这个问题在带反向代理的 Go 服务里很常见:http.Server 的 ReadTimeout、WriteTimeout 只覆盖连接读写阶段,http.Client 的超时...

Node.js 中处理大文件上传:流式写入与背压控制

Node.js 中处理大文件上传:流式写入与背压控制

在 Node.js 服务端处理用户上传的大文件时,直接把整个文件读进内存再写盘是最容易踩坑的做法。比如上传几百 MB 的视频或备份包,fs.readFile 会一次性分配大块 Buffer,轻则内存暴涨触发 GC 停顿,重则直接 OOM 导致进程退出。更隐蔽的问题是,即使你用了 fs.createWriteStream,如果上游数据产生速度远快于磁盘写入速度...

Node.js 中 async/await 与数据库连接池的隐蔽冲突:一次排查记录

Node.js 中 async/await 与数据库连接池的隐蔽冲突:一次排查记录

线上一个用 Node.js + mysql2 写的服务偶尔出现请求卡死,日志里没有任何错误,但接口响应时间飙升到十几秒后超时。本地压测也复现了:并发量一上去,连接池的 getConnection 调用就开始排队,最终触发 PROTOCOL_SEQUENCE_TIMEOUT。排查后发现是 async/await 的写法把连接池的释放时机推迟到了微任务队列的尾部...

68. 基础模型与手机结合:Agent 原生终端来了?

68. 基础模型与手机结合:Agent 原生终端来了?

2025 年 3 月,阶跃星辰在公开活动中提出 Step Edge 概念,把手机端侧基础模型与系统级 Agent 能力绑在一起。同一时期出现的 Step AOS 被描述为面向 Agent 场景的终端操作系统参考设计,Amoo 则是一体化硬件与软件形态。这些名称目前主要来自厂商公开表述和行业讨论,我没有读到源码或完整技术白皮书,所以本文只把它们当作公开提出的产...

Node.js 中处理 CPU 密集型任务的实战:从阻塞事件循环到 Worker Threads 拆分

Node.js 中处理 CPU 密集型任务的实战:从阻塞事件循环到 Worker Threads 拆分

在 Node.js 服务里做图片压缩、PDF 解析或者加解密时,很容易碰到一个尴尬情况:接口明明只处理几十 KB 的数据,QPS 一上来整个进程却卡住,健康检查超时,其他请求全部排队。根因是这些操作跑在主线程上,把事件循环堵死了。Node.js 的单线程模型适合 I/O 密集场景,但遇到纯计算任务时,主线程被占满,定时器、网络回调、Promise 微任务都得...

TypeScript 里 JSON.parse 返回 any,我如何用 Zod 把外部数据变成可靠类型

TypeScript 里 JSON.parse 返回 any,我如何用 Zod 把外部数据变成可靠类型

对接第三方 API 或者读取 localStorage 时,JSON.parse 的返回值永远是 any,TypeScript 的类型检查在这里完全失效。代码里写 const user = JSON.parse(raw) as User 只是给编译器看的一厢情愿,运行时字段缺失、类型错位依然会让页面白屏或者逻辑走偏。更麻烦的是后端偶尔把数字字段返回成字符串,...

Go 服务内存泄漏排查:pprof 定位 goroutine 与堆内存问题

Go 服务内存泄漏排查:pprof 定位 goroutine 与堆内存问题

线上一个用 Go 写的订单回调服务运行几天后 RSS 从 200MB 涨到 1.5GB,最终被 OOM killer 干掉。这个服务逻辑不复杂:接收第三方支付回调,校验签名后写入数据库,再把结果推送到内部消息队列。重启后内存暂时回落,但业务量上来又慢慢涨回去。常见原因包括 goroutine 泄漏、全局 map 只增不减、time.Ticker 未停止、HT...

Go 服务内存泄漏排查:从 goroutine 堆积到 pprof 实战

Go 服务内存泄漏排查:从 goroutine 堆积到 pprof 实战

线上 Go 服务在运行几天后 RSS 持续上涨,重启后恢复,但过几个小时又回到高位,GC 日志里 heap 并不大,active goroutine 却从几千缓慢爬升到几万。这种场景往往不是业务代码显式分配的 slice 或 map 没释放,而是 goroutine 挂在了 channel 收发、锁等待或网络读上,导致栈内存和引用对象都无法回收。本文从一次真...

Node.js 中如何正确处理大文件上传:流式写入与临时文件清理

Node.js 中如何正确处理大文件上传:流式写入与临时文件清理

在 Node.js 服务端处理文件上传时,很多开发者习惯用 multer 或 formidable 把文件先存到磁盘再读出来处理,小文件没问题,但遇到几百 MB 甚至上 GB 的上传就会暴露问题:内存被撑爆、进程 OOM、临时文件残留把磁盘写满。尤其是把上传文件再转发到对象存储或做压缩转码时,如果先把整个文件读进 Buffer 再写出去,等于把文件大小翻倍压...

Node.js 中处理上传大文件时内存暴涨的排查与解决

Node.js 中处理上传大文件时内存暴涨的排查与解决

最近在维护一个内部文件管理服务时遇到一个问题:用户上传几百兆的日志文件或视频素材,Node.js 进程的内存会瞬间飙升到 1GB 以上,偶尔直接触发 OOM 崩溃。服务端用的是 Express + multer,默认配置下 multer 会把整个文件读进内存再写入磁盘,小文件没问题,大文件就成了灾难。类似场景在文件导入、图片处理、视频转码等业务里很常见,本质...

资源下载

更多资源
Mario

Mario

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

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

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

用户登录
用户注册