Node.js与Java在Comet应用方面的比较

11
我们希望构建一个高性能、可扩展的Comet服务器,最初考虑使用Java Grizzly与GlassFish。但是经过一些研究,我们发现Node.JS由于极端简单和声称的性能而迅速成为首选:http://news.ycombinator.com/item?id=1088699http://amix.dk/blog/post/19484。我很乐意听取使用两者的实际经验,并最终可以在未来选择哪一个作为最佳选择。谢谢!
4个回答

13

如果你想进一步阅读同一位作者的博客文章,尤其是这篇Is node.js best for Comet,他解释了为什么他又回到了基于Java的解决方案(Netty),并对此感到满意。我猜这应该是一篇有趣的文章。


当然欢迎。顺便说一下,在性能方面,我认为你选择JVM/Java不会有错。当然,它比其他解决方案消耗更多的内存和资源,但是它是可以正常工作的。祝你好运。 :-) - Sanjay T. Sharma
我们最终选择了基于Netty的守护进程,它运行得非常好,并且比我们想象的要简单得多。 - SyBer

5
我知道这是一个旧问题,已经有答案了,但我认为我的经验可能会有所帮助。
我开始了一个小型宠物项目来测试Node.js - 它的“感觉”以及如何在其上编程。我对在这样的生态系统中工作的简易性印象深刻:Node.js代码易于编写(尽管其异步范例对传统程序员来说不是那么直接),库易于构建等等。甚至npm也非常容易:我只需找到提供自己代码作为库的最简单方法,就可以将其制作成公共包!
然而,没有太多好的工具可用于处理Node.js。也许是因为做任何事情都太容易了,大多数库都是部分实现、未记录的解决方案(我也有罪)。
此外,需要注意的是,Node.js的相关区别不在于JavaScript语言,而在于异步I/O模型。这是Node.js最有趣的方面,但是异步编程风格并没有像传统的Web开发方式那样得到很好的测试。也许它确实是被宣传的奇迹 - 或者,它并没有像承诺的那样好。
即使它有回报,你是否有足够的开发人员来维护这样一个(至少仍然是)不寻常的代码库?如果您可以从Node.js的异步“生活方式”中获得许多优势,您可以使用更加稳定的语言和框架,例如Twisted用于Python(这是我首选的语言,因此请注意我的意见 :))。Java也可能有类似的东西。无论如何,我怀疑您现在对这种模型没有太多兴趣,因为您的问题更关注语言而不是编程范例,因此Node.js对您来说并没有太多提供。

所以...不,我现在不会专业地使用Node.js开发任何东西,尽管我认为学习它既有趣又有教育意义。


1
有点尴尬,这个答案是写给这个问题的,但我把它发错了地方。不管怎样,既然有人喜欢,我会继续维护它 :) - brandizzi

3

在我看来,Node.JS和Grizzly中用于Comet的异步方法被过分吹嘘,存在严重缺陷


谢谢,这对我们现在在Netty中尝试NIO特别有用。 - SyBer

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接