Node.js是成千上万人使用的Web应用程序的不错select,但是只有其中一些人才能访问相同的数据

我试图决定是否值得花时间投入学习Node.js的新程序。 AFAIU最大的好处就是Node让多个用户访问相同数据的过程比使用Apache和PHP更有效率。

该程序旨在被群体使用,所有的数据存储在我们的专用服务器上。 也就是说,同一个数据最多可以被一个组的所有成员访问(最多20个),但是数据库本身可能被任何使用该程序的人访问(为了好玩,假设多达100万)。

我的并发思想最好是基本的。 Node.js是否会改善组的体验(因为他们正在访问相同的数据),还是为每个人(因为他们正在访问相同的数据库)? 另外,这样的设置是否利用了Node的好处?

答案是“可能”。

这听起来像你应该玩节点,并了解其优点和缺点。 Node在高吞吐量的“实时”networking服务方面performance出色,因此在任何Web项目中几乎都有Node的使用情况。 对于你的项目,这可能意味着处理web socket / ajax请求,或者你可能会启动一个节点集群来处理作为后台服务的任务。

像所有的技术一样,Node不能解决所有的问题,其他技术将(可能)更快地完成某些任务。 这是关于学习足够的知识,以了解何时部署节点(以及何时可以考虑另一种工具)。

最糟糕的是,你会学习更多关于JavaScript; 您可以在众多设备和每个网页浏览器上重复使用知识。 最好你会学会使用一个很好的工具,以满足您的需求。

另外:您对“多个用户访问相同的数据”的理解是不正确的。 是的,Node擅长许多并发用户/连接,但Node对于您访问的数据无所谓(DNGAF)。 这将由您的数据库或caching层处理。

根据你的描述,你真的不需要节点,或任何特定的服务器堆栈,如智能caching数据。 节点中没有任何固有的东西比起php,ruby,.net等

你所指的好处是节点可以很好地处理多个并发请求,并且它可以处理在IO上等待很长的请求,因为节点不会挂在IO上(意味着服务器可以继续处理其他请求)。

如果你想学习节点,去吧! 我正在亲自使用它,而且我喜欢它,但是它不是一个魔法子弹,如果你已经投入了服务器堆栈,那么使用它可能会更好,并花费你的时间学习高效caching。