Node.js与Java的彗星应用程序

我们希望构build一个高性能,可扩展的Comet服务器,并首先考虑将Java Grizzly与GlassFish结合使用。

但经过一番研究,我们看到Node.JS由于极端的简单性而迅速成为首选,并声称性能:

http://news.ycombinator.com/item?id=1088699

http://amix.dk/blog/post/19484

我会很高兴听到一些使用这两者的真实经历,最终可能成为下一步的最佳select。

谢谢!

如果你想进一步阅读同一作者的博客文章,也就是post.js是最好的彗星 ,他解释了为什么他又回到基于Java的解决scheme(Netty),并对此感到满意。 我想这将是一个有趣的阅读。

我知道这是一个古老而已经回答的问题,但我认为我的经验可能会有所帮助。

我开始了一个小小的项目来testingNode.js – 它如何“感觉”以及如何编程。 Node.js代码很容易编写(虽然它的asynchronous范例对于传统程序员来说并不那么简单),但是库很容易构build等等。即使npm也非常容易:我只是find了最直接的方式来提供自己的代码作为一个库,是做一个公共的包!

但是,Node.js没有太多好的工具可以使用。 也许因为做任何事情都很容易,大多数图书馆都是部分实施的,没有文件的解决scheme( 我也有罪 )。

另外请注意,Node.js的相关区别不是JavaScript语言,而是asynchronousI / O模型。 这是Node.js最有趣的一个方面,但是asynchronous编程风格并没有像传统的Web开发方式那样得到很好的testing。 也许这真的是宣传的奇迹 – 也许它不如承诺的那么好。

即使在这样的情况下,您是否有足够的开发人员来维护这样的(至less仍然)不寻常的代码库? 如果你能从Node.js的asynchronous“生活方式”中获得很多好处,你可以使用更多的合并语言和框架,比如Twisted for Python(这是我的首选languabe,所以请注意我的意见:) )。 Java也可能有这样的情况。 无论如何,我怀疑你现在对这个模型没什么兴趣,因为你的问题更多地关注语言而不是编程范例,所以Node.js没有太多的东西给你。

所以…不,我现在不会在Node.js中开发一些专业的东西,尽pipe我觉得这样做既有趣又有启发性。

在我看来,在Node.JS和Grizzly中彗星的asynchronous方法是非常有缺陷的 。

在最近的一次testing中(2012年8月),Node.js能够处理来自单个16GB RAM服务器的100万个单一连接。

http://blog.caustik.com/2012/08/19/node-js-w1m-concurrent-connections/