这是一个非常大的项目,对于一个不是熟练的Web开发人员的人来说可能太重了.我还是想试一试,但我在选择平台时遇到了麻烦.世界“尺度”最近被抛到了很多位置,我看到Ruby on Rails因为它不能很好地扩展而受到抨击,所以我来这里得到一些答案.
我喜欢Ruby on Rails,Ruby和Rails.我当然不是专家,但我喜欢和它合作.我之前也使用过Python Django以及PHP(我不喜欢它).
理想情况下,游戏将拥有每台服务器7000个玩家,可能每秒要处理大量数据. RoR仍然是一个可行的平台吗?
我很抱歉,如果这个问题含糊不清,我想我正在寻找一个“RoR很好,去吧!”那种答案.你想要添加的任何东西都很好.
谢谢!
解决方法
话虽如此
在扩展Web应用程序时,有三个主要问题需要担心;内存,执行速度和io(高清和网络)的顺序.
对于记忆来说,事情比过去好得多. Phusion Passenger在写入时使用copy来分叉其worker,因此rails环境将在给定切片上的所有worker之间共享,这是非常重要的.与“黑暗时代”相比,ruby管理内存的方式也有了很大的改进,如果你使用的是1.8.7,那么你想要使用组成Ruby Enterprise Edition的补丁(区别就像白天和黑夜) . 1.9.x几乎完全重写了运行时,所以如果你正在使用ruby已经解决的内存问题.
对于执行速度,1.8.7通常“足够快”(至少在调整垃圾收集设置之后). 1.9.2实际上与python的速度大致相同,这使得它在解释语言的速度更快.这一点的重要性完全取决于应用程序的性质.
最后一点是IO,这不是rails的关注点,而是更多的持久性策略. Rubyist倾向于喜欢新事物,所以你会发现redis和mongodb之类的一流支持,有很多人在谈论使用它们和他们的胜利/陷阱.如果我是你,我会调查mongo,看看是否可以接受耐久性权衡.
在进入rails之前我在java / .net中,并且在一天结束时你将为基础设施支付更多费用,但是在开发时间节省的金额将完全相形见绌.