我正在尝试使用Flex 4.5创建Air应用。该应用程序与LiveCyle Collaboration Service交互,以支持桌面上的屏幕共享和网络摄像头聊天。
我目前正在寻找数据库(不像SQLite本地)来存储和加载Facebook Wall大小的数据。也就是说,许多用户可以在很短的时间内从数据库中存储和加载(同步问题)。另外,我将在Mac mini Snow Leopard服务器中设置数据库。
我想出了这三个解决方案:
1)MySQL使用AMFPHP - 通过服务器端语言访问MySQL。
2)MySQL通过asSQL库 - 直接访问MySQL,但安全性差。
3)BlazeDS / LiveCycleES和ColdFusion - Java EE后端,但ColdFusion是商用的,适合大型项目吗?哪一个是中小型项目的最佳解决方案?或者你能推荐任何其他解决方案?感谢。
答案 0 :(得分:1)
Coldfusion适合大型项目。除非你有一个不适合的预算,否则它的商业性并不重要。但是,如果是这样,那么LiveCycleES要贵得多,所以如果成本是一个问题,你可能必须使用BlazeDS。
至于Facebook的“墙状”功能,您需要考虑几件事。墙意味着您存储了一些柔和的社交图。使用关系数据库,图形网络不是很容易大规模地完成。我建议看一下像MongoDB,Cassandra这样的NoSQL存储。与使用数据库进行分片相比,这些选项的扩展成本要小得多,这需要大量的软件工程才能有效地存储所有内容。
http://www.rackspace.com/cloud/blog/2010/05/12/cassandra-by-example/
如果您想在两个客户端之间共享屏幕,那么您将需要使用PHPAMF和BlazeDS解决一些问题。这些选项都不支持异步消息传递,所以它几乎不是首发。 LiveCycle ES支持Blaze / DS过去没有这种类型的东西。你可能想要仔细检查Blaze / DS的功能,看看最近是否有所改变。您可以看到的一个选项是Red5,它支持RTMP / E.
答案 1 :(得分:1)
我会选择Java / BlazeDS / MySQL作为价格(免费)和可靠性之间的最佳组合(更多人使用BlazeDS而不是AMFPHP)。 NoSQL可能听起来很吸引人,但从开发的角度来看,我所知道的所有真实项目都是昂贵的(4-8个开发人员只在持久性方面工作)。像MySQL这样的关系数据库可以很好地处理你的场景。我已经使用它配置了一个处理400reqs /秒的系统,没有分片。
另一方面,将您的技能与所选堆栈相匹配非常重要,您应该花时间处理功能,而不是学习新语言或复杂框架。如果你比PHP更了解PHP,那就选择AMFPHP而不是BlazeDS。