首页 文章 精选 留言 我的

文章列表

共 235365 篇
Node.js 中处理大文件上传时避免内存溢出的流式实践

Node.js 中处理大文件上传时避免内存溢出的流式实践

文件上传功能在后台管理系统里几乎躲不开,但一旦用户传的是几百兆甚至几个G的日志文件、视频素材或者数据库备份,如果还用 multer 默认的 memoryStorage 或者自己用 req.on('data') 简单拼接 Buffer,进程内存会迅速飙升,轻则触发 GC 频繁卡顿,重则直接 OOM 让服务崩溃。这类问题的根源在于把整个文件留在内存里处理,而 N...

Node.js 中使用 worker_threads 处理 CPU 密集型任务时,为什么性能反而下降?

Node.js 中使用 worker_threads 处理 CPU 密集型任务时,为什么性能反而下降?

最近在优化一个图片处理服务时,把原来在主线程里跑的 Sharp 压缩逻辑挪到了 worker_threads 里,想着能避免阻塞事件循环。结果压测跑下来,QPS 不升反降,CPU 占用率倒是上去了,内存也涨了一截。这个现象其实挺常见:worker 线程本身有启动开销,线程间通信要序列化数据,如果任务粒度太小或者传输的数据太大,并行带来的收益会被这些成本直接吃...

化工高危作业区 UWB 定位:高精度电子围栏、区域入侵与人机防撞逻辑

化工高危作业区 UWB 定位:高精度电子围栏、区域入侵与人机防撞逻辑

化工高危作业区的安全管控由作业规程与强制标准共同定义。AQ 3064.3—2025 要求:通过电子围栏管控人员进出时,应在 5 s 内向越界人员发出报警,30 s 不消警的应形成越界事件记录;人员聚集预警以半径 15 m、持续 1 min 为触发条件,并按 3 人黄色、4–6 人橙色、6 人以上红色分级;定位数据上传频率不低于 30 ...

Java 线程池参数调优:从拒绝策略到队列积压的实战拆解

Java 线程池参数调优:从拒绝策略到队列积压的实战拆解

线上服务在晚高峰时出现接口超时,日志里频繁打印 RejectedExecutionException,但 CPU 和内存监控并没有明显飙高。排查后发现是订单异步通知模块的线程池配置有问题:核心线程数写死成 2,队列用的是无界 LinkedBlockingQueue,结果任务在队列里越堆越多,下游数据库连接被长时间占用,最终拖垮了整个请求链路。线程池参数看着简...

从一次线上事故聊起: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 微任务都得...

资源下载

更多资源
Mario

Mario

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

Spring

Spring

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

Rocky Linux

Rocky Linux

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

Sublime Text

Sublime Text

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

用户登录
用户注册