【发布时间】:2011-09-26 08:23:25
【问题描述】:
我正在编写一个 ruby on rails 应用程序,该网站最重要的功能之一是现场投票。我们完全期望我们将在短短 1 分钟内收到 1 万个投票请求。连同其他请求,这意味着我们可能会收到大量请求。
我最初的想法是设置服务器以使用 apache + phusion,但是,为了投票,我正在考虑编写一个 php 脚本并在 memcached 中写入/读取信息。数据只需要持久化15分钟左右,所以1分钟内向数据库写入10000次似乎毫无意义。我们还需要标记用户的 ip,这样他们就不会投票两次,因此在 memcached 中更加复杂。
如果有人有任何建议或想法以使这项工作尽可能好,请提供帮助。
【问题讨论】:
-
查看 NoSQL 数据库,每分钟 10k 写入大约是每秒 165 次写入。不多。
-
没想到,你推荐的最靠谱的是什么?
-
用于 NoSQL 的 MongoDB。如果您使用的是 MySQL,请使用 MyISAM 表。
-
如果你决定使用基于 Rack 的框架(Rails、Sinatra),请不要使用 Apache + Passenger,首先因为 Apache 是一个巨大的内存和 CPU 猪,其次是因为它是一个巨大的内存和 CPU hog :p,checkout Nginx,它可以很容易地用Passenger编译,或者代理到像Unicorn这样的东西。它的内存占用也非常小,不到 2MB。
标签: php ruby-on-rails ruby apache phusion