关于node性能的问题

我们都知道node是因为Javascript语言的特性 (即:单线程 + event-loop)所以做到了节省服务器资源,以及相对的高性能
节省资源我能理解,但高性能,虽然我能理解一部分,但我假设了一种场景,然后我就想不通了

比如有一个功能,函数体主要是查询一个数据库表的数据,假设同一时间有10000次的并发量来访问,那么接下来假设执行栈10000次的执行一瞬间完成之后,任务队列里这时候就会有10000个等待执行的回调函数在排队。
那这么看的话,性能上也不见得会快啊,或者node有适合的应对机制?

比如java的话,我可以用多台服务器以分布式部署的方式,用硬件的量来打破这个瓶颈(虽然钱上面的开销就。。)
node的话,cpu就是直接的瓶颈了,那该肿么样处理这个问题呢?


刚刚初学node,这是我现在不理解的地方。请各位大神指点~


杨魅力
浏览 509回答 1
1回答

万千封印

我们从两个角度来看node的效率一:从工具的角度来看在我们准备要做一款产品或是实现一个功能的时候,其中很重要的一步就是技术选型,根据产品的特点和开发周期来评估(真是情况会复杂的多很多因素会影响技术选型)node的优势就是动态语言门槛学习相对(c/c++)较低。甚至会javascript的前端同学稍微指导一下就能写。二:从性能角度来看又不会像PHP传通的LAMP多进程那一套效率低。单线程异步特点项目前期即使不前后端分离也能有不俗的吞吐量。三:但是也有缺点项目后期单线程异步比起传统的同步逻辑的编程调试会复杂点。过于底层的操作性能低,例如操作文件。动态语言没有严格的变量类型,对于大的项目来说增加调试难度,不过这些问题可以用现有的typescript解决四:如果正确使用现在我在项目中的做法是node做介入层仅仅只负责渲染页面用,请求发送到api服务器放入消息队列,消费端用go来实现业务逻辑(保证高效稳定)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript