【问题标题】:Node.js vs Java for Comet application [closed]Comet 应用程序的 Node.js 与 Java [关闭]
【发布时间】:2011-05-28 04:18:59
【问题描述】:

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

但经过一些研究,我们发现 Node.JS 因其极其简单和声称的性能而迅速成为首选:

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

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

我很高兴听到一些使用这两种方法的真实体验,以及最终可能成为最佳选择的方法。

谢谢!

【问题讨论】:

    标签: java node.js comet grizzly


    【解决方案1】:

    如果您进一步阅读同一作者的博客文章,即 Is node.js best for Comet,他解释了为什么他再次回到基于 Java 的解决方案 (Netty) 并对此感到满意。我想那会是一本有趣的书。

    【讨论】:

    • 谢谢,错过了。
    • 当然欢迎你。顺便说一句,我认为在性能方面你不会在 JVM/Java 方面出错。当然,它比其他解决方案消耗更多的内存和资源,但它确实有效。祝你好运。 :-)
    • 我们最终选择了基于 Netty 的守护进程,它运行良好,而且开发起来比我们想象的要简单得多。
    • @SyBer:很高兴它对你很有效。祝你好运。 :)
    • 感谢博文的 URL,阅读愉快!
    【解决方案2】:

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

    我开始了一个小小的宠物项目来测试 Node.js - 它的“感觉”以及如何在其上进行编程。在这样的生态系统中工作的便利给我留下了深刻的印象:Node.js 代码很容易编写(尽管它的异步范式对于传统程序员来说不是那么简单),库很容易构建等等。甚至 npm 也非常简单:我刚刚发现将您自己的代码作为库提供的最直接的方法是制作一个公共包!

    然而,使用 Node.js 的好工具并不多。可能因为做任何事情容易,大多数库都是部分实现的、未记录的解决方案(和I am guilty too)。

    另外,请注意,Node.js 的相关区别不是 JavaScript 语言,而是异步 I/O 模型。这是 Node.js 最有趣的方面,但是异步编程风格没有像传统的 Web 开发方式那样经过测试。或许真的是宣传的奇迹——又或许,并没有承诺的那么好。

    即使有回报,您是否有足够的开发人员来维护这样一个(至少仍然如此)不寻常的代码库?如果你能从 Node.js 的异步“生活方式”中获得很多优势,你可以使用更统一的语言和框架,例如 Python 的Twisted(这是我的首选语言,所以请注意我的意见:) )。 Java也可能有类似的东西。无论如何,我怀疑你现在对这个模型没有太大的兴趣,因为你的问题更多地关注于语言而不是编程范式,所以 Node.js 无论如何也没有什么可以提供给你的。

    所以...不,我暂时不会在 Node.js 中开发一些专业的东西,尽管我认为学习它既有趣又有益。

    【讨论】:

    • 尴尬的是,这个答案是写给this question的,但我把它贴错了地方。不管怎样,既然有人喜欢这个,我会维护它:)
    【解决方案3】:

    在我看来,在 Node.JS 和 Grizzly 中美化的 Comet 异步方法是 deeply flawed

    【讨论】:

    • 谢谢,这对我们现在在 Netty 中尝试 NIO 非常有用。
    【解决方案4】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-23
      • 1970-01-01
      • 2011-01-19
      • 1970-01-01
      • 1970-01-01
      • 2017-09-04
      • 2011-04-18
      • 2014-01-22
      相关资源
      最近更新 更多