我正处于通过 Flex 和 AIR 使用 Flash 的新多用户客户端/服务器应用程序的规划阶段。我正在尝试决定哪个 Web 平台/堆栈最适合这个?
我过去曾使用过 RoR,但据我所知,RoR 是单线程的,因此不是处理潜在数千个并发请求的理想选择。
我已经阅读了一些有关 Scala 和 Lift 的内容,这是一个有趣的选择,但我想知道是否还有其他语言/框架可以很好地用于我的项目?
我正处于通过 Flex 和 AIR 使用 Flash 的新多用户客户端/服务器应用程序的规划阶段。我正在尝试决定哪个 Web 平台/堆栈最适合这个?
我过去曾使用过 RoR,但据我所知,RoR 是单线程的,因此不是处理潜在数千个并发请求的理想选择。
我已经阅读了一些有关 Scala 和 Lift 的内容,这是一个有趣的选择,但我想知道是否还有其他语言/框架可以很好地用于我的项目?
我对 Scala 和 Lift 不太了解...如果您想坚持使用 ruby,请查看merb ...无论如何它似乎都会与 RoR 合并,所以您可能只是等待下一个版本.. . :)
您可能想看看Haxe(一种高级语言,针对许多平台,如 AVM1、AVM2、PHP、c++ 等)和neko(可用作 Haxe 编译器目标的服务器 VM),以及 Haxe 远程处理(您可以简单地将您的 Haxe 网络代码编译为 swc,其余部分使用 AS3/mxml)... neko 可扩展性很好... 它非常轻巧且可扩展... 有很多方法可以将其用作服务器平台,但它也允许您从头开始编写所有内容,因为 API 公开了低级访问...
编辑:您应该使用mod_tora,因为它的占用空间较小......对于提到的其他内容,只需查看邮件列表......有一个“简单的持久对象数据库”层,这可能会有所帮助......还有是一些“完整的持久对象数据库”漂浮在周围......对于路由,也有多种解决方案......不要忘记检查haxelib ......你可以在那里找到很多可重用的东西......
最近对 Nginx 和 Lighty 进行了垂直可扩展性比较:
它是否可以使您的应用程序受益取决于许多因素,但考虑到其中涵盖的 CPU、RAM 和 RPS 见解,此测试可能有助于确定任何给定情况的最佳匹配。
我建议使用 lighttpd 来提供静态内容。您的 AIR 应用程序是否会与通过我们使用其他 Saas 站点提供的其他服务提供的服务器进行交互?如果您想将(MVC 的)控制器保留在服务器上,那么 RoR 或 Scala 或 Lift 非常棒。使用 AIR,我认为这不是您想要的方式,因为它增加了控制器交互的复杂性,而且您必须在两个地方维护状态。
如果您的客户端/服务器交互模型将简单地使用 REST 服务(尽管在 Flex 中 REST 支持有点笨拙,因此您可能需要编写自己的套接字库来支持其他 REST 动词并获得对标头的访问权限)然后您的后端服务器变得不那么复杂。您只需要处理 HTTP 请求的请求/响应。
好的,所以我会推荐。
CherryPy for Python Servlets/Jetty for Java
确保选择缓存中间层,例如 memcached 或 tokyotyrant(两者都支持我的帖子和其他文章中提到的所有环境)。