我想实现一个像证券交易所这样的网络应用程序,其中的值会一直变化(假设每秒一次)。我可能会使用 ajax comet 来完成。
由于应用程序的性质,用户会有些并发,我有点担心性能。
这些是我的想法:
我想在 Rails 3 中实现它,但我担心性能。有什么好的托管公司可以选择吗?我应该使用云吗? ruby 1.9.2 中的 Rails 3 会比 php 更快(包括数据库查询)?
我可以在 Play 框架中实现它,它可能没有性能问题,但我想在生产中即时进行更改(如果需要),而不需要重新部署等。而且我更喜欢 Rails 一点。
我可以用 PHP 来实现,但这需要更多时间、更多代码
我没有使用 Rails 或 Play 的真实生产系统的经验,所以我对性能不太了解。有人可以帮忙吗?
最佳答案
可能值得考虑使用 Faye ,这是一个“简单的网络发布/订阅消息传递”框架。
Faye 拥有 Ruby 和 Node.js 服务器组件,以及 Ruby 客户端,并且对于您的用例 Web 浏览器至关重要(显然是通过 javascript)。
有两种方法:
- 将 Faye 服务器嵌入您的 Rails 应用中。漂亮又简单,移动部件更少,需要管理的流程更少,但可能不如以下那样可扩展:
- 在 Node.js 中运行单独的 Faye 服务器,并使用 Ruby Faye 客户端从 Rails 应用程序向其推送消息。稍微复杂一点。更多事件部件。更多流程需要管理。但至关重要的是,所有繁重的连接工作都是在 Node.js 中完成的,这是它非常擅长的事情。
如果是我,我会从选项 1 开始以保持简单,然后升级到选项 2 当且仅当我可以证明这是必要的。
Railscast 260 中有关于使用 Ruby 中的 Faye 的精彩介绍。 .
关于ruby-on-rails - Rails 3 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6277347/