适用于高性能Flash / Flex / AIR应用程序的大多数可扩展Web堆栈?

时间:2009-06-11 11:44:58

标签: flex flash web-applications scala client-server

我正在使用Flash通过Flex和AIR进行新的多用户客户端/服务器应用程序的规划阶段。我想确定哪个Web平台/堆栈最适合这个?

我过去使用过RoR,但据我所知,RoR是单线程的,因此不是处理数千个同时请求的理想选择。

我已经完成了一些关于Scala和Lift的阅读,这是一个有趣的选择,但我想知道是否有其他语言/框架可以很好地适用于我的项目?

3 个答案:

答案 0 :(得分:1)

我不太了解Scala和Lift ...如果你想坚持使用红宝石,请查看merb ......它似乎会与RoR合并,所以你可能只是等待下一个版本...:)

您可能需要查看Haxe(一种针对许多平台的高级语言,如AVM1,AVM2,PHP,c ++等)和 neko (服务器) VM可用作Haxe的编译器目标,以及Haxe远程处理(您可以简单地将您的Haxe网络代码编译为swc并坚持使用AS3 / mxml)... neko可以很好地扩展...它很轻可扩展...有很多方法可以将它用作服务器平台,但它也允许你从头开始编写所有内容,因为API暴露了低级访问...

修改: 你应该使用mod_tora,因为它的占用空间较小......对于提到的其他内容,只需查看邮件列表......有一个“简单的持久对象数据库”层,可以帮助...还有一些“完整的persitent对象数据库”浮动...并且对于路由,也有多种解决方案...不要忘记查看haxelib ...你可以找到相当多的可重用东西......

答案 1 :(得分:1)

最近对Nginx和Lighty进行了垂直可伸缩性比较:

http://forum.gwan.com/index.php?p=/discussion/525/nginx1.0.6-vs-lighttpd1.4.29-vs-g-wan2.9.30-rpscpuram/

它是否能使您的应用程序受益取决于许多因素,但鉴于其中涵盖的CPU,RAM和RPS见解,此测试可能有助于确定任何给定案例的最佳匹配。

答案 2 :(得分:0)

我建议使用lighttpd来提供静态内容。您的AIR应用程序是否应该与我们使用其他Saas站点提供的其他服务所服务的服务器进行交互?如果你想在服务器上保留你的控制器(MVC),那么RoR或Scala或Lift是很棒的。使用AIR,我不认为这是你想要的方式,因为它增加了控制器交互的复杂性,而且你必须在两个地方保持状态。

如果你的客户端/服务器交互模型只是简单地使用REST服务(虽然REST支持在Flex中有点怪,所以你可能需要编写自己的套接字库以支持其他REST动词并获得访问权限。标题)然后你的后端服务器变得复杂得多。您只需要处理HTTP请求的请求/响应。

好的,我会推荐的。

CherryPy for Python Servlets / Jetty for Java

确保选择缓存中间层,例如memcached或tokyotyrant(两者都支持我帖子中提到的所有环境和其他环境)。