首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >社交网络平台的架构

社交网络平台的架构
EN

Stack Overflow用户
提问于 2010-11-13 04:34:38
回答 2查看 7.2K关注 0票数 1

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

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

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

嗯。我想创造一些类似的东西。但所有这些复杂性都出现在我的脑海中。如果任何有开发经验的人都能分享他们的知识,那就太好了。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-17 23:02:14

很难猜测foo和bar公司的架构是什么,但是……我的愿景是让你选择的操作系统的虚拟化基础安装与你令人惊叹的社交应用程序捆绑在一起,在它上面预先配置自己的数据库集,或者链接到主/从集群。

因此,每当用户来注册一个新的社交应用克隆时,你的系统就会根据你的模板创建一个新的虚拟机来完成这项工作。这可能需要几秒钟才能自动配置...好吧,如果socialnet很震撼,并且需要扩展,那么只需克隆其他几个虚拟机并将它们绑定在一起即可。vips、缓存、前端、主从数据库对。您可以为所有人提供模板。

需要特别注意的是,这个虚拟机并不需要是一个完整的操作系统;您只需使用OpenVZ和friends (FreeBSD Jails)等技术就可以构建用户空间。

也可以查看http://www.opennebula.org

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

票数 3
EN

Stack Overflow用户

发布于 2010-11-14 07:27:32

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

我不知道他们是如何对系统进行编程的,但这里有一个猜测,他们是如何做到的。

如果你以facebook为例,当你打开你的页面时,你会看到你的朋友写的东西,无论是在他们的墙上还是在别人的墙上。

这里的重点是,每个人都有一堵墙,当你在你的墙上写东西时,系统也会在你所有的朋友墙上写上同样的信息。因此,当你的朋友请求他的页面时,所有的信息都在一个地方,返回速度非常快。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4168828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档