难道我用错了吗?NodeJS到底适用什么场景
发布于 12 年前 作者 smcdl 13248 次浏览 最后一次编辑是 8 年前

公司的业务都是基于HTTP协议Java开发的,也就是说使用Nginx+Tomcat这种组合,今日看到NodeJS不错,就对照其中一个业务(对应一个Servlet)做了一个NodeJS版本,测试结果让我非常失望。

公司业务原始架构: Nginx + Tomcat + Redis + Mysql

NodeJS版架构: NodeJS + Redis (默认数据已经载入Redis,不需要再读数据库) 使用了generic-pool作为Redis的连接池

测试结果 Java版每秒处理峰值3.6K req#/sec左右 (说明:ab -n 1000 -c 100 ,直接对一台Tomcat压) NodeJS版每秒只能处理1.6K req#/sec

这让我情何以堪啊。说真的,这种测试结果让我很疑惑,近日还听说网易用这玩意做了一个游戏引擎,这货的性能真的如传说中那么NB吗?

9 回复

莫非有阻塞?

性能真是挺关心的. 虽然 Node 不是靠语言性能出彩的… 楼主贴更多细节看看吧… 总共几个核, 开了几个进程, 逻辑性处理有多少… 实在不行看看代码

是不是业务逻辑很复杂 可以看看这篇文章~里面讲了node适用及不适用的场合http://nodeguide.com/convincing_the_boss.html

node是单进程,你要测试性能,要用cluster多开几个进程来跑  这样比较结构才有比较意义

Cluster是个好东西,我用了之后性能大幅提高,NodeJS已经可以跑到4.5K req#/sec啦。

@smcdl 很屌啊,比Java厉害

nodejs跑helloword 跟nginx不相上下

你可以测试下jetty,jetty的并发比tomcat要强一点 我测试的结果是

 jetty7.5          2302.57rps  
tomcat7.0.32   2062.93rps
测试环境 linux-2.6.18 contos5.4 ab -n 10000 -c 250

lz应该看看node的适用场景,对于pomelo可以先看看文档,性能调优也是一步一步做的。 https://github.com/NetEase/pomelo/wiki/pomelo性能参考

回到顶部