Java 社交媒体应用程序的最佳架构

Java 社交媒体应用程序的最佳架构,java,architecture,web-applications,cassandra,social,Java,Architecture,Web Applications,Cassandra,Social,我正在致力于一个有前途的项目,为网络和手机开发一个新的社交媒体应用程序。我们刚刚开始定义功能。尽管如此,我还是在思考建筑。所以我想问: 1-开发具有Rest API接口的应用程序核心的最佳平台是什么 2-什么样的数据库可以随着我的应用程序扩展和增长 就我的研究而言,这些是我发现最有趣的答案: 对于数据库: Cassandra NoSQL DB,惊人的可扩展性,惊人的写入性能,良好的读取性能(将在0.6上改进)。我想我会选择那个 卡桑德拉交易的Zookeer 我认为这两种技术真的很适合这个提议。你

我正在致力于一个有前途的项目,为网络和手机开发一个新的社交媒体应用程序。我们刚刚开始定义功能。尽管如此,我还是在思考建筑。所以我想问:

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

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

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

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

卡桑德拉交易的Zookeer

我认为这两种技术真的很适合这个提议。你们觉得呢,伙计们

在前端,它将提供RESTAPI,我没有最终的候选。对于这一点,我有一些基于性能X可伸缩性X快速开发/维护的问题

就我所研究的而言,Java或.Net带来了这两个必要条件之间的最佳平衡

Python、pearl和Rail是最好的(快速开发/维护),但是sux在所有其他方面都是最好的

C或C++,我甚至不考虑,因为它(快速开发/维护)SUX…< /P>


你们怎么看呢?

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

另请看。它是一个高性能的分布式缓存系统,肯定会满足您的需求。

我从Rails开始,因为它有一个活跃的社区,有很多创新,优秀的REST支持,而这正是我最了解的。我认为性能/可伸缩性问题现在已经基本上被揭穿了。。。调整和扩展Rails应用程序需要与任何其他系统相同的解决方案——假设您有幸需要处理扩展问题


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

jbellis:是的,确实如此

现在我正在寻找Django和Cassandra的集成,我相信它的平台非常好,但Django团队支持noSql DBs没有任何官方支持,甚至没有任何预期


我发现另一个有趣的选择是将cassandra与RoR以及Twitter团队开发的Fanua的客户端一起使用。

你应该看看社交媒体的10Duke SDK


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

您可以从本机电话端获取一些功能。(SDK是开源的)。

我认为你做的过早优化太多了。我知道,哈哈,但很快或晚些时候,这种问题就会敲响我的门。我喜欢在这类问题上工作和研究。坚实的基础将使我的项目健康发展。neo4j基于图形。如本文()所述,它是为空间数据库工作的,这是我需要的。但我对图表有点生疏,我需要把我的大学课本拿回来。感谢Answersemcached很好地用于lamp解决方案,但我没有看到任何人将其用于cassandra。也许它可以用来帮助提高Cassandra的读取性能。@Sky的人没有使用它。b/c Cassandra 0.6的速度足够快,因此在前面添加memcached并不能给您带来足够的好处来证明额外的复杂性。例如,Digg过去使用memcached和他们旧的MySQL架构,但他们在迁移到Cassandra时放弃了它。我的项目是构建一个类似foursquare的web应用程序,比方说这是一个互动性更强的foursquare。我所看到的关于性能和可伸缩性的大多数基准测试和比较都说:RoR sux对性能和可伸缩性很不利。但是我找不到任何关于这方面的文章。是在django中完成的Cassandra应用程序示例。源链接在那里。