Node.js还是servlet?[关闭]


10

我听到了很多,并阅读了有关Javascript服务器端语言(即Node.js)的信息,并看到了许多支持Node的比较。

我不了解是什么使它变得更好或更快速,或者它甚至与Java Servlet一样成熟。

但是,Servlet是基于多线程编程语言而不是Node.js构建的。那node.js怎么能更快呢?

如果假设有1000K用户查询数据库记录,那么Node.js不应比Servlet慢。

另外,与Node.js相比,servlet是否没有更好的安全性?


进程和线程均可用于扩展任何应用程序以实现多核利用率。您不需要两者。
Raynos 2012年

@Raynos绑定的C功能也不能被线程化吗?我只是以JS的角色作为非阻塞自动排队使者,将事情交给较低级别​​的人员处理,但是我还没有在Node上得到过认可。
埃里克·雷彭

Answers:


12

您正在混合苹果和橙子。

Servlet(或从HttpServlet继承)使您可以访问HTTP请求参数,并通过现有HTTP服务器实现(或在其之上)进行响应。

尽管使用Java语言作为语言,但Node.js的级别要低得多。它从实际实现 HTTP服务器开始。尽管如此,您仍然可以在其中进行更多高级工作,例如Web应用程序。

关于多线程,没有必要。由于多线程,Node.js服务器的运行速度并不快,因为它们不会阻塞IO请求,因此它们的运行速度也更快,因此它们可以在执行其他操作的同时继续将它们排入队列。他们只有在有工作要做时才起作用-他们不等待它-事实证明,这会导致性能的严重提高。

至于数据库查询,它实际上更多地是关于数据库模型和API中的约束,而不是关于客户端。

至于安全性-这实际上是一个不同的主题,无论如何最终归任何开发人员所有,而库中则没有那么多。


3
Servlet 3像Node一样支持异步IO
jiggy 2013年

3
jiggy- 支持某项与从头开始设计某项之间有很大的区别。节点异步是后者。
2015年

1
@Yam Marcovic我仍然不明白您的意思是“它们不会阻塞IO请求”,即使在JEE中,线程也将独立运行,并且不会停止另一个请求的提供。每个请求都会创建一个新线程。我说得通吗
奥利弗·
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.