Nodejs - 实现一个稳健的文件上传服务

稳健的上传服务,啥样的上传服务算稳健呢?

- 上传大文件内存暴涨,不能算稳健吧

- 并发量贼小,不能算稳健吧


采用流式上传

nodejs中流真是个好东西,可以平衡生产者(readStream)和消费者(writeStream)之间的矛盾,不会因为生产过快,导致仓库积累大量货物,可以认为流中实现了一个中介,当生产到了一定量,即读入内存一定数据量,中介告诉生产者,“先暂停生产吧!仓库放不下了,东西还没卖完”。当东西卖完了,中介通知生产者继续生产,这样可以保证产品堆积总量总是不超过一定量,也就程序总是不会超过一定的内存占用量。

然而流也有缺点,流占有内存少,自然效率不如一股脑儿的有多少内存用多少内存。但是这样任务就会排队阻塞,没有什么并发可言。

所以,用nodejs的流实现文件上传服务可以做到文章开头说的稳健。


实现上传

我们知道nodejs中的IO操作是异步的,流也不例外,而处理异步问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容