国内外大型SNS网站后台架构对比

news/2024/5/11 11:02:55/文章来源:https://blog.csdn.net/he90227/article/details/41545773

要问时下什么类型的站点人气最旺?答案当属SNS网站。短短几年的时间,SNS便迅速确立了Web 2.0核心的地位。用户的增长量之快更是让人咂舌,而Facebook访问量首次超越Google的消息也让人觉得SNS的前途不可限量。当然,面对庞大且繁琐的数据量、面对应用的高复杂度及用户体验,大型SNS站点的后台架构成为了51CTO开发频道近期关注的重点之一。

在连续报道了《世界最大的PHP站点 Facebook后台技术探秘》及《专访人人网黄晶:SNS网站后台架构探秘》之后,除了看到SNS网站后台的独特风景之外,我们也看到了作为国内外SNS站点的代表,Facebook和人人网在后台技术应用上还是有很多不同的地方,当然,造成这种不同的原因有很多。这里我们将对比Facebook和人人网的后台架构,在找出这些差异的同时,我们也能够看出,跟国外相比,国内SNS网站的后台技术差距还有多大?差距在哪里?

后台语言的选择

作为一个大型站点,后台语言的选择意味着不同的架构路线、以及不同的开发框架。考虑到SNS网站后台架构的复杂性,可选择的语言并不多,Facebook作为一个大型LAMP网站,选择了PHP;而人人网则使用Java。当然,PHP和Java各具优势,PHP+MySQL的黄金搭档被无数站点所使用;在评价Java的优势时,黄晶老师说道,“而当项目日渐复杂的时候,Java则能通过其良好的OO特性,保持非常好的模块性,也有益于网站重构。”

后台语言的选择有很多因素,选择哪种语言也并不重要,关键是要适合相应的生产环境,这里比较PHP与Java的优劣并没有太大的意义。但要说明的是,每种语言都有它的劣势,如何进行有效的优化才是开发者们需要思考的,就像Facebook为PHP量身打造了HipHop那样。

数据库

在后台架构中,数据库一直是我们关心的重点。曾经日壮山河的关系型数据库,在NoSQL运动下,仿佛显得日薄西山,这句话用在SNS站点中再合适不过了。没错,由于SNS站点的高复杂性,其对数据库的要求非常高,高性能、可扩展性以及可用性,缺一不可。

Facebook并不是一个传统意义上的LAMP站点,MySQL也主要作为一个Key-value的持久性存储使用,而它的存储系统则是NoSQL运动的一个重要组成部分——Cassandra,它的特点也正是SNS站点所需求的,尽管很多人认为NoSQL还不够成熟,缺乏可靠性,但Facebook的成功却是一个活生生的例子。

Facebook数据库架构 
Facebook数据库架构图,请点击原图查看

通过黄晶老师的介绍我们了解到,其实人人网也不只是在使用MySQL。Nuclear是人人网团队自主研发的分布式KV存储系统,目前已经在逐步的试用。关于Nuclear的详细介绍,可以参考人人网UGC团队博客的介绍:http://ugc.renren.com/2010/01/21/ugc-nuclear-guide-use/

从中我们不难看出,关系型数据库已经不能满足大型SNS站点的需求,在外国大胆使用NoSQL的同时(包括Facebook、Twitter等),国内对NoSQL的使用还是显得比较谨慎,技术水平的差距,在这点上确实有所体现。从长远角度讲,特别是在SNS领域,NoSQL必将会逐步代替传统的关系型数据库。

缓存

缓存技术在后台架构中扮演着重要的角色。对于SNS站点来说,仅仅依靠数据库、Web服务器等软件的自身缓存机制是绝对不能满足要求的。Memcached是人人网和Facebook都用到的一个分布式内存缓存系统,其已成为互联网最有名气的软件之一了。当然,缓存的手段是多种多样的,仅仅保证日常后台的稳定运行也是不够的。面对一些突发事件,缓存机制更是尤为重要,特别是在数据库服务器与Web服务器上。

图片存储架构

图片会给Web服务器带来不小的压力,特别是Facebook处理的图片量(每个月超过30亿张照片被上传),非常惊人!对此,Facebook专门开发了一套图片存储架构——Haystack。关于Haystack的详细介绍,请参考:Facebook图片存储架构技术全解析

相比于Facebook,人人网并没有一套完整的图片存储架构体系。当然,作为人人网的用户,能够感觉到进行上传图片等一些操作,还是很流畅的。说明以目前的人人网图片处理技术,能够满足目前用户的需求,以及后台的流畅运行。但架构总要着眼于未来,开发一套完整的、高效的架构体系,才是最佳的解决方案。

SNS后台技术未来发展趋势

相比于其他类型的站点,SNS网站后台架构更为复杂。关于SNS后台技术未来发展趋势问题,黄晶也表示,鉴于SNS网站的一些业务特点,在后台技术中,人人网最关注的仍然是高性能,可扩展性,高可用性,所以SNS网站架构中特别需要一个能灵活应对业务变化的一套健壮的分布式系统。

在对比过人人网与Facebook的后台架构之后,我们不难看出,除了整体架构的系统性能之外,对于其中每个细节的把握,更是我们国内架构师们需要仔细思考的,这同时也需要我们的技术人员提高自身能力、敢于使用先进的技术及应用、更要勇于创新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_809051.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

各大网站架构总结笔记

各大网站架构总结笔记 记得在大学里不止一次关注网站架构方面的东西了,但每次都是泛泛了解,也没有着重记录,一段时间后对各种架构的思想也就模糊了。这几天不知怎么的又心血来潮(可能是快毕业了冲动了)想深入了解一下网…

网站启用GZip压缩后,速度快了3倍!

GZip压缩,是一种网站速度优化技术,也是一把SEO优化利器,许多网站都采用了这种技术,以达到提升网页打开速度、缩短网页打开时间的目的。 本文是一篇研究性文章,将通过某个案例来给大家显示网站采用GZip压缩前后的对比效…

中小型网站的缓存策略

在上一篇文章《大型网站系统架构分析》中,介绍了大型网站的系统架构,其中缓存环境非常重要,大型网站往往使用Squid前端缓存服务器群,memcache分布式缓存,负载均衡,CDN等来提升性能。但中小型网站使用这些大…

瞬时响应:网站的高性能架构

什么叫高性能的网站? 两个网站性能架构设计方案:A方案和B方案,A方案在小于100个并发用户访问时,每个请求的响应时间是1秒,当并发请求达到200的时候,请求的响应时间将骤增到10秒。B方案不管是100个并发用户访…

Mysql在大型网站的应用架构演变

本文主要描述在网站的不同的并发访问量级下,Mysql架构的演变,下面分别从不同的角度思考mysql的演变过程.可扩展性架构的可扩展性往往和并发是息息相关,没有并发的增长,也就没有必要做高可扩展性的架构,这里对可扩展性进行简单介绍…

大型网站架构与分布式架构

大型互联网架构 解决问题的通用思路是将分而治之(divide-and-conquer),将大问题分为若干个小问题,各个击破。在大型互联网的架构实践中,无一不体现这种思想。 架构目标 低成本:任何公司存在的价值都是为了获取商业利益…

网站分布式架构的演进

来源:知乎 http://www.zhihu.com/question/22764869/answer/31277656首先推荐4本书 大型分布式网站架构设计与实践 http://item.jd.com/11529266.html 大型网站技术架构:核心原理与案例分析 http://item.jd.com/11322972.html 大型网站系统与Java中间件实…

浅谈Web网站架构演变过程及各阶段所用的技术和架构设计

前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。该系统具备的功能:用户模块:用户注册和管理商品模块:商品展示和管理交易模块:创建交易和管理 阶段一、单机构建网站 网…

大型网站电商网站架构案例和技术架构的示例

大型网站架构是一个系列文档,欢迎大家关注。本次分享主题:电商网站架构案例。从电商网站的需求,到单机架构,逐步演变为常用的,可供参考的分布式架构的原型。除具备功能需求外,还具备一定的高性能&#xff0…

个人网站被攻击,并受到勒索信息,怎么应对?

个人网站被攻击,并受到勒索信息,这已经是第二次了 To recover your lost databases and avoid leaking it: visit http://dbrestore.to and enter your unique token 18dc****52424 and pay the required amount of Bitcoin to get it back. Databases that we have:** Your d…

Web网站通知系统设计

写在前面: 通知系统是网站信息传播机制的重要的一部分,足够写一大章来说明。本文只梳理设计原则,后续相关内容会持续更新。 这里的通知包括但不限于公告、提醒或消息(不同使用场景下的功能定义不同)。 关于各客户端平台…

主流网站服务器配置组成 主流网站服务器报价

主流网站服务器配置组成 主流网站服务器报价 当今互联网已经是由数量巨大的服务器担当各种服务角色,构成丰富多彩,信息巨大的网络世界,最新英特尔Xeon处理器采用45纳米制程技术,提供第二代四核动力,主频高达 3.2GHz&am…

如何替换页面url_网站改版需要注意什么?如何把SEO影响降到最低?

网站的重新改版意味着网站的主题、页面设计或网站架构没有变化,以便做出相对较大的改变。如果网站主题的内容发生很大变化,域名从一个行业变成另一个行业的内容,从SEO的角度来看,这不是网站的改版,而是网站的自杀。首先…

seo查询工具源码_分享3款实用的SEO推广工具,值得收藏!

在竞争激烈的市场环境中,如何降低网站的维护成本,如何获得较多的人流量,如何提高网站排名等诸多问题,都是企业在营销过程中不可忽视的问题。然而,在大多数推广方式之中,SEO优化方法被很多企业优先考虑的。因…

jstl处理栏目与子栏目_SEO:栏目页优化对于关键词排名的重要性

我们在做网站优化排名的时候发现,网站关键词排名一直上不来,而且关键词库是很少的,除了我们设置好的首页TDK以外,其它栏目页就没有好好的运用,我们可以看看大部分的企业网站,他们的栏目页大部分就是一些留言…

2021江西高考成绩查询微信可以吗,2021年江西高考成绩查询网站查分网址:http://www.jxeea.cn/...

【导语】高考结束后大家最为关心的问题就是在哪里查分,如何查分,无忧考网高考频道特别整理2021年江西高考成绩查询查分网址,成绩公布时考生可直接点击网址进行查分,预祝大家都能顺利的考上理想的大学!由于,…

PHP:【商城后台管理系统】部署友情链接,网站基础设置

PHP:【商城后台管理系统】部署友情链接,网站基础设置 一.友情链接 ①友情链接页面 ②友情链接编辑 ③友情链接添加 二.网站基础设置 ①后台网站基础设置页面 ②网站基础设置效果 三.部署流程 部署流程 后端采用thinkphp6.0,首先是网站基础设置&…

Python建站-阿里云-Ubuntu-Django

以前写的更像是备忘,这次希望写出一个完整教程,方便大家,也加深一下自己的印象。 服务器 用的是阿里云的轻量应用服务器,就是学生申请的那个,其他的应该都差不多。相信大家都已经申请好了,如果有小白的话…

avenir字体可以商用吗_一字赔万金,4个网站拯救字体版权问题

歪脑设计的第7个WHY大家好,我是小喳子夸下海口日更的我来了昨天,根正苗红的木木突然热泪盈眶要庆祝阿中麻麻的生日求程序猿小哥哥撸了个小红旗头像的小程序我和柚柚却给小哥哥捶背到无法自拔就在把小哥哥捶到四肢僵硬时,咋一看手机&#xff0…

404 not found nginx是什么意思_404到底是什么意思,网站设置有啥好处,怎么设置?...

在我们打开网站的时候,有时候会存在打不开的现象,而每一种打不开现象背后都有一个逻辑,例如数据库错误,例如页面不存在等现象,而404就是页面不存在返回到的一种页面,有些404页面会进行设置了自动跳转到首页…