多平台社交网络应用程序开发架构

时间:2014-01-03 21:43:32

标签: performance architecture scalability social-networking development-environment

我正在考虑一些像facebook或linkedin这样的社交媒体应用程序。我在http://highscalability.com/这样的网站上阅读了很多文章,并没有找到正确的答案。

因为,现在最大的应用程序,使用他们的自定义系统。他们使用自定义文件系统或自定义数据库引擎或自定义Web服务器。他们不使用原始的iis,apache,mssql,mysql,windows或linux。他们使用大量编程语言来解决不同的问题。由于它们的负载,它们对他们没问题。他们必须计算每一点或一些东西。他们从一些小环境开始,他们遇到了问题,看到了瓶颈。因此他们创立了新的解决方案。

现在,我们可以找到一些关于他们当前系统的文章。但我们没有回答什么是最好的开始

我需要学习的答案“什么样的架构才是正确的开始?”

我对此有一些想法,但我们需要确定它。

我们认为,

将mysql用于关系数据库。和mysc上的memcached一样的缓存机制。和业务层的休息api。我们认为使用python进行rest api的编码。所有系统都运行在合适的Linux发行版上。在所有这些环境都可以之后,我们可以使用任何语言或系统来实现UI。它可以是用于Web的PHP站点,也可以是IOS或Android的本机应用程序。

我们需要你的建议。非常感谢你。

(我是一位好读者,但这是我的第一个问题。我希望没有问题。)

1 个答案:

答案 0 :(得分:2)

去年我提出了类似的问题compiled一些较大的社交网站使用的技术和技术。

以下架构概念在这些站点中很普遍:

可扩展性

  • 缓存(严重地,跨越多个层和层)
  • 数据分片(最好按数据位置标准)
  • 内存数据库,用于经常引用的数据
  • 高效的线路级协议(与企业通常认为的最新技术水平相反)
  • 异步处理

灵活性

  • 面向服务架构作为基准原则
  • 解耦和分层组件
  • 异步处理

可靠性

  • 异步处理
  • 复制
  • 小区架构(独立操作的子集,例如按地理标准)

注意:如果您启动新网站,则不太可能存在这些超大型网站所面临的扩展或可靠性要求。因此,最好的建议是从小做起,但要保持灵活性。一种方法是使用一种简单的应用程序框架,但具有后续扩展的灵活性,例如: Django的。