NIO网络服务器之间的比较

时间:2010-12-08 11:32:54

标签: node.js nio lift yaws

我们需要在我们的架构中加入一个服务器,用于将内容传输到(可能)数百万部电话。

在这里,建筑师和操作人员只知道Java,但我真的想提出更快更容易维护的东西。

我目前的候选人名单是:提升 Node.js 偏航

服务器应在验证用户凭据并向用户收费后提供静态内容(视频,游戏,xml说明)。所以也将使用nosql db(couchdb或mongodb)。

无需制作动态内容或HTML。

纯粹的速度很重要但不是唯一的参数,操作简便易用也很重要。

从发展的角度来看,我非常喜欢这三种方式。

  1. 所有其他条件相同由于Scala和Java之间的兼容性,Lift将是我的首选。
  2. 第二个是node.js,因为每个人都理解Javascript。
  3. Erlang有点难学和教,所以Yaws将是我的最后选择,虽然我个人喜欢它。
  4. 所以问题是:根据您的经验,您会推荐我什么?可能也是另一个。

4 个答案:

答案 0 :(得分:2)

由于你的要求,难以比较,但我更喜欢节点。但是再次根据您的要求,java可能更合适。

  

服务器应该提供静态内容   (视频,游戏,xml说明)   在验证用户凭据之后   并向用户收费。所以一个nosql db   (couchdb或mongodb)将用作   好。

node.js是/是(3.x更好地解决了这个问题)不太适合处理大型请求=>观看来自ryan dahls的关于大请求问题的roadmap talk(35:36然后你会看到一个不可接受的图表,两者都在3.x中解决)。

只能比较节点与java,因为我对erlang没有任何经验。

  • npm vs maven => npm好多了。
  • node.js中的一些非常好的库以及github.com上创建的很多库。命名一些:express,socket.io,npm,node_redis
  • 在node.js中进行非常快速的原型设计。
  • 如果是webprogrogramming,人们应该学会使用javascript。
  • 用于java的IDE要好得多,但是你需要在node.js中输入更少的内容。您甚至可以使用coffeescript(也许zappa)来减少您的输入。例如,我也喜欢在netbeans中的Junit集成与IDE中的node.js单元测试支持(不存在?)。

答案 1 :(得分:2)

没有理由认证和内容服务需要相同的技术。您可以使用您喜欢的任何技术进行身份验证和计费,然后通过支持非公开内容的CDN(Akamai,Cloudfront或自定义身份验证/交付架构)提供内容。

要求的两半可能具有非常不同的使用,并且具有不同的设计要求。

答案 2 :(得分:1)

我会投票支持node.js,因为它非常快且非常容易使用。或者您可以考虑针对libevent编写C代码......但是从上面的列表中我真的推荐node.js

答案 3 :(得分:0)

来自Gabriele Lana的私人电子邮件(好朋友和特殊开发者)。


我的订单是:

  1. node.js - 这里的关键字实用。我刚刚完成了一个小项目,在14天内完成了node.js + redis,它就像魅力一样。
  2. erlang - 关键字是这里的性能稳定性。如果erlang不能这样做,那可能是一项不可能完成的任务。学习曲线陡峭,但结果非常好。
  3. 提升 - 最后因为我不认为你的项目需要复杂的domanin逻辑(在这种情况下我会选择scala)。