主 题:从 Node.js 到 Go:夸克资源搜索站(pansou.de)的架构重构实践
发 布 者:chc25852
标签分类: 技术
时 间:2026-10-11 11:16:00
内容预览:背景PanSou盘搜得 是一个夸克网盘资源聚合搜索平台,上线以来月活用户超过200万,索引资源量达800万+条。随着用户规模增长,原有的 Node.js 技术栈逐渐暴露出一些问题,最终决定进行一次彻底的架构重构。旧架构的痛点初版架构采用 Next.js + BullMQ + PostgreSQL + Redis 的组合:Next.js 负责前端渲染和 API RoutesBullMQ 处理异步任务(资源转存、定时清理)PostgreSQL 存储资源索引和转存记录Redis 做查询缓存和任务队列这套架构在早期运行良好,但随着流量增长,问题逐渐显现:1. 并发处理能力受限Node.js 单线程模型在高并发场景下压力明显。搜索请求需要调用上游API、数据库查询、Redis缓存,在流量高峰期P99响应时间经常突破2秒。2. 资源占用偏高Next.js 进程内存占用大,加上 BullMQ Worker 进程,整体资源消耗不低。在用户量翻倍后,服务器成本压力开始显现。3. 维护复杂度上升API Routes、Service层、Worker任务散落在不同模块,依赖链路长,排查问题需要跨多个层级。4. 定时任务可靠性不足BullMQ 虽然成熟,但在资源清理这种长周期任务上偶尔会出现任务堆积,需要人工介入重启。重构方案核心思路是前后端彻底分离,业务逻辑下沉到性能更强的 Go 服务。新架构设计用户请求 ↓宝塔 Nginx(反代) ↓Docker 内部 Nginx ├─ /api/v1/* → Go API (8080) └─ /* → Next.js (3000) ↓ PostgreSQL + Redis ↓ Go Worker (定时清理)职责划分:Next.js:纯前端渲染 + SSR SEO落地页,不再
直达链接: https://www.nodeseek.com/post-975943-1
发 布 者:chc25852
标签分类: 技术
时 间:2026-10-11 11:16:00
内容预览:背景PanSou盘搜得 是一个夸克网盘资源聚合搜索平台,上线以来月活用户超过200万,索引资源量达800万+条。随着用户规模增长,原有的 Node.js 技术栈逐渐暴露出一些问题,最终决定进行一次彻底的架构重构。旧架构的痛点初版架构采用 Next.js + BullMQ + PostgreSQL + Redis 的组合:Next.js 负责前端渲染和 API RoutesBullMQ 处理异步任务(资源转存、定时清理)PostgreSQL 存储资源索引和转存记录Redis 做查询缓存和任务队列这套架构在早期运行良好,但随着流量增长,问题逐渐显现:1. 并发处理能力受限Node.js 单线程模型在高并发场景下压力明显。搜索请求需要调用上游API、数据库查询、Redis缓存,在流量高峰期P99响应时间经常突破2秒。2. 资源占用偏高Next.js 进程内存占用大,加上 BullMQ Worker 进程,整体资源消耗不低。在用户量翻倍后,服务器成本压力开始显现。3. 维护复杂度上升API Routes、Service层、Worker任务散落在不同模块,依赖链路长,排查问题需要跨多个层级。4. 定时任务可靠性不足BullMQ 虽然成熟,但在资源清理这种长周期任务上偶尔会出现任务堆积,需要人工介入重启。重构方案核心思路是前后端彻底分离,业务逻辑下沉到性能更强的 Go 服务。新架构设计用户请求 ↓宝塔 Nginx(反代) ↓Docker 内部 Nginx ├─ /api/v1/* → Go API (8080) └─ /* → Next.js (3000) ↓ PostgreSQL + Redis ↓ Go Worker (定时清理)职责划分:Next.js:纯前端渲染 + SSR SEO落地页,不再
直达链接: https://www.nodeseek.com/post-975943-1