Architecture 社交网络平台的架构

Architecture 社交网络平台的架构,architecture,web-platforms,Architecture,Web Platforms,我很想知道Ning、SocialGo等平台是如何设计的。不特别是社交网络平台,但通常是允许用户建立类似网站的平台 我的理解是,当用户注册时,他们会得到一个子域,通过该子域,他们的成员可以注册并访问特定的用户生成的站点。我假设有一个通用的数据库结构,为生成站点的每个用户克隆 我想知道当单个站点增长时,它们将如何扩展。此外,如果他们引入新功能,他们将如何将其整合到所有可用的站点?例如,需要更改数据库结构的新功能,如何对所有现有站点进行更改 嗯。我想创造一些类似的东西。但我想到了所有这些复杂的事情。如

我很想知道Ning、SocialGo等平台是如何设计的。不特别是社交网络平台,但通常是允许用户建立类似网站的平台

我的理解是,当用户注册时,他们会得到一个子域,通过该子域,他们的成员可以注册并访问特定的用户生成的站点。我假设有一个通用的数据库结构,为生成站点的每个用户克隆

我想知道当单个站点增长时,它们将如何扩展。此外,如果他们引入新功能,他们将如何将其整合到所有可用的站点?例如,需要更改数据库结构的新功能,如何对所有现有站点进行更改

嗯。我想创造一些类似的东西。但我想到了所有这些复杂的事情。如果任何有开发这种复杂事物经验的人都能分享他们的知识,那就太好了


谢谢。

扩展到很多用户的站点通常不使用关系数据库。不可能足够快地从关系数据库中提取数据,也不可能只有一个数据副本

我不知道他们是如何为自己的系统编程的,但这里有一个猜测他们是如何做到这一点的

如果你以facebook为例,当你打开你的页面时,你会看到你的朋友在他们的墙上和其他人的墙上写的东西

这里的要点是,当你在墙上写东西时,每个人都有一面墙。系统也会在你所有朋友的墙上写同样的信息。所以当你的朋友请求他的页面时,所有的信息都在一个地方,很快就会返回


在数据库端,数据库是名称/值对数据库。价值部分中的内容可以是不同的版本,并且可以批量更新。(向具有1亿行的关系表中添加一列可能会锁定该表一段时间)

很难猜测foo和bar公司的体系结构是什么,但是。。。我的愿景是让您选择的操作系统的虚拟化基础安装与您的精彩社交应用捆绑在一起,并在其上预先配置自己的数据库集,或者链接到主/从集群

因此,每当用户来注册一个新的socialapp克隆时;您的系统通过基于模板创建新的虚拟机来完成这项工作。这可能需要几秒钟来自动配置。。。如果社会网络动摇,需要扩大规模;只需克隆一些其他虚拟机并将它们绑定在一起。VIP、缓存、前端和成对的主从数据库。您可以为所有用户提供模板

请特别注意,此虚拟机不需要是完全操作系统;您只能使用OpenVZ和friends(FreeBSD监狱)等技术构建用户区

也请查看


这是我的2美分。我也在学习这一点。

谢谢你的回答。但和我预想的不一样。在Facebook上,我们创建账户,但在Ning和SocialGo上,我们可以创建自己的社交网络。我在考虑那种建筑。