浅谈Node 异步IO和事件循环(4)

假设你的业务是cpu密集型的, 那你采用Node来开发, 肯定是不适合的。 为什么不适合? 因为Node是单线程, 你被阻塞在计算的时候, 其他的事件就做不了, 处理不了请求, 也处理不了回调。

那么在IO密集型中, Node就比Java好吗? 其实也不一定, 还是要取决于你的业务。 如果你的业务是非常大的并发, 但是你的服务器资源又有限, 就好比现在有个入口, Node可以一次进10个人, 而Java依次排队进一个人, 如果是10个人同时进, 当然是Node更具有优势, 但是假设有100个人(如1w个异步请求之类)的话, 那么Node就会因为它的异步机制导致应用被挂起,内存狂飙,IO堵塞,而且不可恢复,这个时候你只能重启了。而Java却可以有序的处理, 虽然会慢一点。 而一台服务器挂了造成的线上事故的损失更是不可衡量的。(当然, 如果服务器资源足够的话, Node也能处理)。

最后, 事实上Java也是具有异步IO的库, 只是相对来说, Node的语法更自然更贴近, 也就更适合。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/c3a02d5b5adf9912daafd4441074e1bb.html