我正在尝试决定是否值得投入学习Node.js以获得新程序。 AFAIU的最大好处是Node使得多个用户访问相同数据的过程比使用Apache和PHP更有效。
该程序旨在由组使用,所有数据都存储在我们的专用服务器上。也就是说,相同的数据最多只能被一个组的所有成员访问(最多20个),但是使用该程序的任何人都可以访问数据库本身(为了好玩,我们可以说高达100万)。
我对并发的想法充其量是基本的。 Node.js会改善组的体验(因为他们访问相同的数据),或者每个人(因为他们访问同一个数据库)?或者,这样的设置甚至可以利用Node的优势吗?
答案 0 :(得分:2)
答案是“可能”。
听起来你应该玩Node并了解它的优点和缺点。 Node擅长高吞吐量的“实时”网络服务,因此在任何Web项目中几乎总是存在Node的用例。对于您的项目,这可能意味着处理Web套接字/ ajax请求,或者您可能会启动节点集群来处理作为后台服务的任务。
与所有技术一样,Node并不能解决所有问题,其他技术(可能)可以更快地完成某些任务。这是关于学习足以知道何时部署Node(以及当可能考虑其他工具时)。
最糟糕的是,您将了解有关javascript的更多信息;您可以在无数设备和每个Web浏览器上重复使用的知识。充其量,您将学会使用适合您需求的出色工具。
另外:您对“访问相同数据的多个用户”的理解不正确。是的,Node擅长许多并发用户/连接,但Node对于您正在访问的数据并不关心(DNGAF)。这将由您的数据库或缓存层处理。
答案 1 :(得分:1)
根据您的描述,您实际上不需要节点或任何特定的服务器堆栈,就像智能缓存数据一样。节点中没有固有的东西可以使它比php,ruby,.net等更容易。
您所指的好处很可能是节点可以很好地处理多个并发请求,它可以处理等待IO的长请求,因为节点不会挂起IO(这意味着服务器可以继续处理其他请求)。
如果你想学习节点,那就去吧!我个人正在使用它并且我喜欢它,但它不是一个神奇的子弹,如果你已经投入了服务器堆栈,你可能会更好地使用它并花时间学习有效的缓存。