【问题标题】:Best architecture for a social media app社交媒体应用的最佳架构
【发布时间】:2011-01-24 19:34:10
【问题描述】:

我正在开发一个用于网络和移动设备的新社交媒体应用程序的有前途的项目。我们刚刚开始定义功能。不过,我正在考虑建筑。所以我问:

1 - 开发此应用程序核心的最佳平台是什么,它将具有 Rest API 接口。

2 - 可以随着我的应用程序扩展和增长的最佳数据库是什么。

据我研究,这些是我发现最有趣的答案:

对于数据库: Cassandra NoSQL DB,惊人的可扩展性,惊人的写入性能,良好的读取性能(将在 0.6 上改进)。我想我会选择那个。

在 Cassandra 上进行交易的 Zookeer。

我认为这两种技术非常适合该提议。大家觉得呢?

在前端它将为 REST API 提供服务,我没有最终候选人。对于这个,我有基于性能 X 可扩展性 X 快速开发/维护的问题。

据我研究,Java 或 .Net 带来了这些要求的最佳平衡。

Python、pearl 和 Rail,拥有最好的(快速开发/维护),但在其他所有方面都差强人意。

我什至不考虑 C 或 C++,因为它的(快速开发/维护)功能...

那你们怎么看呢?

【问题讨论】:

  • 我认为你做了太多过早的优化。在这个阶段可能更好地关注功能。
  • 我知道,哈哈,但是这种问题迟早会敲我的门。我喜欢在这类问题上工作和研究。坚实的基础会让我的项目健康成长。

标签: java web-applications cassandra architecture


【解决方案1】:

在数据库方面看一下neo4j。它非常适合社交网络的所有要求。它实际上是一个网络数据库。

【讨论】:

  • neo4j 是基于图的。像这篇文章 (en.wikipedia.org/wiki/Spatial_database) 一样,说它在空间数据库方面的工作,这是我需要的。但我的图表有点生疏,我需要拿回我的大学书。感谢您的回答
【解决方案2】:

你应该看看 10Duke SDK for Social Media http://developer.10duke.com/

它具有高度可扩展性且独立于操作系统和数据库,因此您可以轻松配置环境以满足您的需求。 SDK 包含大量类,以支持构建社交应用程序所需的大多数对象模型。许多繁重的编码已经完成,这将节省大量的开发时间。

【讨论】:

    【解决方案3】:

    另请查看memcached。它是一个高性能的分布式缓存系统,绝对能满足您的要求。

    【讨论】:

    • Memcached 很适合与灯解决方案一起使用,但我没有看到有人将它与 cassandra 一起使用。也许它可以用来帮助提高 casssandra 的读取性能。
    • @Sky 人们没有使用它 b/c Cassandra 0.6 足够快,以至于在前面添加 memcached 并没有给您带来足够的好处来证明额外的复杂性是合理的。例如,Digg 曾经使用带有旧 MySQL 架构的 memcached,但他们在迁移到 Cassandra 时放弃了它。
    【解决方案4】:

    我会从 Rails 开始,因为它有一个活跃的社区、大量的创新、出色的 REST 支持,而且我碰巧最了解它。我认为性能/可扩展性问题现在已经在很大程度上被揭穿了......调整和扩展 Rails 应用程序需要与任何其他系统相同的解决方案——假设你有幸需要处理扩展问题。

    就数据存储而言,我对项目或您要解决的问题了解得不够多,无法推荐任何东西。

    【讨论】:

    • 我的项目是构建一个像foursquare这样的网络应用程序,可以说这是一个具有更多交互性的foursquare。我看到的关于性能和可扩展性的大多数基准测试和比较都说:RoR sux 性能和扩展的痛苦。但我没有找到任何具有一致解决方法的文章。
    【解决方案5】:

    jbellis:是的,没错。

    现在我正在寻找 Django 和 Cassandra 的集成,我相信它非常不错的平台,但没有官方支持,甚至没有 Django 团队支持 noSql DB 的观点。

    另一个我觉得有趣的选项是使用 cassandra 和 RoR 以及 Twitter 团队开发的 Fauna 客户端。

    【讨论】:

    • twissandra.com 是一个用 django 完成的 Cassandra 应用示例。源链接在那里。
    【解决方案6】:

    您也许可以从Socialize 中提取一些功能用于本机电话端。 (SDK 是开源的)。

    【讨论】:

      猜你喜欢
      • 2021-07-19
      • 2019-10-26
      • 1970-01-01
      • 1970-01-01
      • 2021-02-12
      • 2011-02-03
      • 2020-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多