Node.js适合搭建IM服务器么?其中有什么优缺点?有踩过坑的大神么?
发布于 2 年前 作者 bingFly 3393 次浏览 来自 问答
  1. Node.js适合搭建即时通讯服务器么?同时支持web端和移动端
  2. 量大的话有性能问题么?
7 回复

首先,node擅长io密集型场景,所以对于聊天等网络io也不例外; 其次,优缺点方面从语言特性上讲,不擅长cpu密集型运算;从具体业务来讲,由于是js写的,要想保证实时性更新需要做些额外的工作; 然后,量大不大,每个人都有自己的定义,阿里可以说几亿算大,一般公司说几百万算大,所以这个要自己根据业务判定; 最终,对于一件事情,建议带上自己的理解和想法,再提出来,经过沟通和交流有自己的体会,而不是简单的问这个东西好不好,东西好不好我不知道,关键看谁写,怎么写。

@haozxuan 谢谢大神,第一次接触node.js,正在调研中,所以问个大概也没想太多。

性能瓶颈不应该是在某个语言。

实际上,业务代码消耗不了多少性能。如果只是返回Hello world这样的,一台电脑几百万的并发还是可以的。

性能瓶颈应该在数据库层。并发的时候数据库要锁行,锁表。所以要排队等。一瞬间并发量大的话,队列会很长,越往后的等的越久。

所以关键还是看你怎么写业务代码,什么时候该加锁,什么时候释放。

来自酷炫的 CNodeMD

@axetroy 学习了,谢谢~

@haozxuan

实时应用,低延时也是node擅长的领域,腾讯的webim就是node写的,主要是socketio实现(自定义了好多优化),千万级的量,非常稳定。

我目前在用node做这方面的开发,ios、android通讯和web端通信。 也是自己摸索在做,目前没有能力自己设计通讯协议,用的xmpp。

xmpp、mqtt协议node都有现成的包可以用,如果跟我一样暂时没能力时间去做的话,可以直接用。 写demo的话很快就能写出来,可以自己压测下看看性能。

回到顶部