Nodejs-背压机制

228 阅读1分钟

Nodejs已经实现了背压机制. 如果不实现背压机制,会出现内存溢出、GC频繁调用、其他进程变慢等问题

image.png

image.png

const fs = require('fs');

let rs = fs.createReadStream('test.txt',{
    highWaterMark:4
})

let ws = fs.createWriteStream('test1.txt',{
    highWaterMark:1
})

let flag = true

rs.on('data',(chunk)=>{
    flag = ws.write(chunk,()=>{
        console.log("写完了")
    })
    if(!flag){
        rs.pause()
    }
})

ws.on('drain',()=>{
    rs.resume()
})

主要通过可写流writ方法、drain事件,可读流pause方法、resume方法配合使用。