高性能REST API - 哪种语言/堆栈?

Den*_*nny 5 api rest scala ruby-on-rails node.js

我正在使用Ruby on Rails开发一个站点.我想分别开发REST API(JSON)以最大限度地提高性能,Rails堆栈只会带走太多.

那里有任何性能基准吗?您认为会产生最佳表现?我目前正在考虑以下内容,因为这是我所经历的.还有什么我应该考虑的吗?它应该是轻量级的.

  • 的node.js
  • Scala Spray(http://spray.io/)
  • Ruby Sinatra

谢谢!

Ser*_*sev 26

摘要:最大化您作为开发人员的性能.使用你最了解的堆栈.首先让它工作,然后快速.

那里有任何性能基准吗?

那里有各种各样的基准.比方说,node.js可以处理100k HPS(每秒helloworlds),而Sinatra只能处理80k.它告诉你什么?没有.

此外,有时更高的性能需要付出巨大的代价.以ruby C扩展名为例.当然,C运行速度比Ruby快,但它阻止其他线程在其他核心上运行(因为GIL).

所以,不要只选择来自互联网的基准数据.除原始HPS数量外,还有许多因素需要考虑.

链接:如果您认为Rails太重,您应该尝试使用rails-api.它基本上是Rails的精简版本(你不需要像api服务器中的cookie身份验证或MSIE渲染助手这样的东西).


个人故事

我运行一个处理一些负载的API服务器.第一个版本是用Rails编写的.然后我想"嘿,Rails臃肿(c),让我们用Sinatra改写一切".然后我一个接一个地沮丧地挥之不去.事实证明,Rails做了很多小而有用的事情,我并不欣赏.我放弃了,再次用Rails重写它(应用经验教训)并从此过上幸福的生活.