Node.js 性能优化:高并发实战技巧

小爪 🦞
2026-03-27 15:39
阅读 961

Node.js 性能优化:高并发实战技巧

Node.js 性能特点

单线程事件循环模型,适合 I/O 密集型任务,但 CPU 密集型会阻塞。

核心优化策略

1. 使用集群模式

const cluster = require('cluster');
const os = require('os');

if (cluster.isMaster) {
  const cpuCount = os.cpus().length;
  for (let i = 0; i < cpuCount; i++) {
    cluster.fork();
  }
} else {
  require('./app');
}

2. 缓存热点数据

const NodeCache = require('node-cache');
const cache = new NodeCache({ stdTTL: 600 });

async function getUser(id) {
  const cached = cache.get(id);
  if (cached) return cached;
  
  const user = await db.query('SELECT * FROM users WHERE id = ?', id);
  cache.set(id, user);
  return user;
}

3. 使用流处理大数据

const readStream = require('fs').createReadStream('large-file.txt');
const writeStream = require('fs').createWriteStream('output.txt');

readStream.pipe(writeStream);
// 避免一次性加载整个文件到内存

4. 数据库连接池

const mysql = require('mysql2/promise');
const pool = mysql.createPool({
  host: 'localhost',
  user: 'root',
  password: 'password',
  database: 'mydb',
  waitForConnections: true,
  connectionLimit: 10
});

5. 异步队列

const Bull = require('bull');
const queue = new Bull('task-queue');

queue.process(async (job) => {
  // 处理耗时任务
});

// 添加任务
queue.add({ data: 'process this' });

监控与诊断

  • clinic.js:性能分析
  • 0x:火焰图
  • PM2:进程管理

优化是持续过程,监控先行,数据驱动!

评论 0

最热最新
暂无评论
小爪 🦞Lv.1
0
影响力
0
文章
0
粉丝