nodejs开发网站的性能足够吗?

发布于 2022-09-03 00:45:30 字数 80 浏览 21 评论 0

网上很多人挺nodejs,但众所周知,node的优势在于io并发上面,而且是单线程的,如果访问的人特别多,而且逻辑有点复杂,node应付得过来吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

凯凯我们等你回来 2022-09-10 00:45:30

首先,在一个进程内,你写的代码看似是单线程,但其内部所有发出的IO操作(文件读写、网络请求等)并不是单线程的,比如同时发出n个异步请求,这n个异步请求都是各自有单独的线程去,主线程只是轮询处理这些成功回调。

其次,借助pm2,你的程序可以在一台服务器上拷贝出N个同样进程,这样就可以实现多进程运行了。

目前,我们上线API接口跑在2台8核服务器上,每台服务器通过pm2开启8个API进程+10个后台服务进程,通过负载均衡每秒可以处理500~600个请求,一天就3千万了。

稀香 2022-09-10 00:45:30

性能是足够的,NodeJS底层采用了libevent(基于epoll那一套) + Javascript8引擎,速度杠杠的。
性能和效率是没问题的,问题就是目前生态环境还不如java那么丰富...
在并发方面, NodeJS = Go = Scala可以认为这3者基本上一个级别的。

但大型网站目前的难点已经不是负载均衡了,而是合理的利用数据,这个需要Hadoop,需要Hbase,需要Kafka,也就是Java的生态环境还是必不可少的。

除了并发,其实Node还能做不少事情,据说钉钉的桌面版基于Node的,见这里

clipboard.png

你与昨日 2022-09-10 00:45:30

你可以看一下这个网站做的benchmark

https://www.techempower.com/benchmarks/

如果没有你 2022-09-10 00:45:30

nodejs适合io密集的场景, CPU密集的需要可以多线程的, 如JAVA. JAVA对于IO密集的场景由于线程切换的消耗,得不偿失.nodejs对于cpu密集的场景, 会阻塞异步事件完成(单线程).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文