专访人人网黄晶:SNS网站后台架构探秘

news/2024/5/20 10:08:37/文章来源:https://blog.csdn.net/Hello_Ken/article/details/7785197

51CTO在此之前报道过一篇名为《世界最大的PHP站点 Facebook后台技术探秘》的文章,让我们了解到Facebook是如何保证5亿用户的系统一直保持稳定、可靠运行的。如果说Facebook离我们有些远的话,那么相信人人网是大家再熟悉不过的一个SNS网站了。(相关阅读:国内外大型SNS网站后台架构对比

人人网 
人人网首页

人人网作为国内大型SNS站点的代表,其目前已经拥有真实注册用户超过7000万、PV达到了4亿、日登录2200万人次。面对如此庞大的访问量,人人网的后台架构是怎样的一番景象呢?关于此,51CTO独家专访了现任人人网产品技术高级总监黄晶老师。

人人网产品技术高级总监黄晶老师 
人人网产品技术高级总监黄晶老师

在今年4月24日召开的Qcon 2010技术大会上,51CTO也曾对黄晶老师进行过采访,详情请阅读《51CTO专访人人网黄晶:WEB开发需要随需应变

51CTO作为国内大型SNS站点的代表,我们知道人人网后台主要采用Java语言编写,同其他形式的站点相比,SNS站点在网站架构方面有什么样的特点?

黄晶老师:SNS网站用户数据量庞大且关系复杂,对实时性要求非常高,因此要求SNS网站架构要有很强的水平扩展性。

51CTO在后台语言的选择上,有其他大型SNS站点使用PHP,人人网则选择了Java,使用Java的优势在体现哪些方面?

黄晶老师:Java的优势体现在当项目日渐复杂的时候,可以通过Java良好的OO特性,保持非常好的模块性,在进行网站重构的时候比较方便,在代码量增大的时候也可保持良好的可管理性。

51CTO现在很多大型网站的后台都使用了大量的开源软件,人人网是否也是如此呢?咱们的开发团队是否也在开发自己的框架呢?

黄晶老师:人人网也使用了大量开源软件,比如MySQL、Memcached、ICE、Hadoop等,同时我们也根据业务需要研发了自己的框架,比如MVC框架,分布式KV存储系统。

51CTO一个网站在发展过程中,后台都会经历不断的重构,从初期的校内网、到现在的人人网,网站架构最大的变化在哪?

黄晶老师:从初期的校内网到现在人人网,最大的变化是:很多底层服务都从利用已有开源软件的搭建,变成了根据业务需要,由我们自己开发专门的服务所代替,这样能够提高资源利用程度,提高整个系统的可用性。

51CTO我们知道人人网的用户量非常庞大,在数据库方面,人人网采用了哪种数据库?除了高性能、可扩展性外,人人网对数据库的需求还有哪些?在整个后台系统架构中,往往数据库的性能也会出现瓶颈,从早期的校内网到现在,我们对数据库性能的优化方面都做了哪些大的改变?

黄晶老师:我们采用的数据库是MySQL,在需求方面,我们也非常关注高可用性。早期校内从单数据库,到主从接口,发展到后来垂直拆分,然后水平拆分,然后在每个节点上实现主-主提高可用性,到异地备份容灾。目前我们的数据库已经有非常强的水平扩展能力和非常高的可用性。

关于MySQL,51CTO推荐专题:MySQL数据库入门与精通教程

51CTO数据缓存在后台架构中同样非常重要,在数据库服务器、Web服务器以及两者之间,人人网都采用了哪些缓存手段?

黄晶老师:我们的数据库用到了部分自身缓存机制,比如尽可能利用innodb的pool和MySQL的Query Cache。在中间用到Memcached,以及基于ICE通讯框架由我们自己编写的包含业务逻辑处理能力的缓存服务,在我们自行开发的分布式KV系统中也会充分利用内存Cache加速。

推荐阅读:分布式缓存系统memcached简介与实践

51CTO目前国内外也有很多大型站点在使用NoSQL,从功能上来将,其非常适合应用在SNS、微博等站点,人人网是否在考虑使用NoSQL呢?

黄晶老师:对于NoSQL,我们已经考虑并在逐步试用自行开发的Nuclear分布式KV存储系统。

关于NoSQL,51CTO推荐专题:NoSQL:关系型数据库终结者?

51CTO上传照片或者图片是SNS网站用户很常用的一个功能,对于Web服务器来讲,图片是非常消耗资源的,那么目前人人网每天大概有要处理多少张图片?相比较其他数据而言,图片会占用大量存储空间,给服务器带来不小的压力,我们知道Facebook有着一套自己的图片存储架构,咱们人人网在这方面是怎么做的呢?

黄晶老师:现在人人网每天要处理千万张级别的照片数量。我们使用由C++专门编写的Web服务来处理照片上传和压缩工作。存储是用一套分布式文件存储系统,在小文件很多的情况下,也会采用把小文件聚合为大文件的方式提高性能,这样的做法也便于大量小文件的备份。

51CTO目前SNS站点都有很强的实时性,用户能够第一时间看到好友都在做什么,像人人网以及Facebook等,还有即时聊天功能,我们是通过什么样的手段来最大限度的优化每一个页面,从而尽可能的减少服务器的请求时间,提高用户体验的呢?

黄晶老师:我们的做法是尽可能把数据放在内存中,提高数据存取速度。另外,复杂的页面采用并发机制,多线程同时从多个后台源取数据拼成页面。

51CTO最后,还想请黄晶老师谈一谈SNS网站后台技术的发展趋势,以及从事SNS后台开发的开发者需要关注那几方面?

黄晶老师:鉴于SNS网站的一些业务特点,在后台技术中,我们最关注的仍然是高性能,可扩展性,高可用性。并且SNS所提供的服务也在变化中,对于业务的多变,架构要有灵活适应的能力,否则需要提供新服务的时候重构之前的系统工作量很大。类似Google的GFS/Bigtable/MapReduce一系列通用的分布式系统非常优秀,可以支撑很多Google的业务需要。所以在SNS网站架构中也需要一个能灵活应对业务变化的一套健壮的分布式系统。


http://developer.51cto.com/art/201009/224740_1.htm

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

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

相关文章

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

要问时下什么类型的站点人气最旺?答案当属SNS网站。短短几年的时间,SNS便迅速确立了Web 2.0核心的地位。用户的增长量之快更是让人咂舌,而Facebook访问量首次超越Google的消息也让人觉得SNS的前途不可限量。当然,面对庞大且繁琐的…

大型网站架构演变和知识体系

原文:http://developer.51cto.com/art/200810/91460.htm 之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演…

用R语言的NetworkInference包推理隐藏的(州政府、网站)影响力网络关系

信息源:https://cran.r-project.org/web/packages/NetworkInference/vignettes/netinf_vignette.html 上图是用NetworkInference包推理出来的美国各州在政策上的互相影响关系。 页面内容可总结为: -------- 数据:美国的某个州某年采取某项政策…

python抓取百度搜索列表的实际网址和网站标题

# codingutf8 import sys import random import string import urllib import urllib2 import re #设置多个user_agents,防止百度限制IP user_agents [Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20130406 Firefox/23.0, \ Mozilla/5.0 (Windows NT …

使用可道云kodexplorer将dedecms网站秒变私有网盘

国内草根站长用的最多的一款建站源程序就是dedecms,通常是通过FTP或者服务器面板自带的文件管理器来上传下载的。FTP可视性、体验都相对差一点,且需要事先安装FTP软件,更换环境后的站点管理上有很多不便;另一方面,涉及…

如何借助网站高级工具查看url

打开音乐网址 然后按鼠标右键,选择审查元素 大概你们大概就是这个样子,当然可能有中文和英文的差距。 然后在标题上面选择网络,假如是英文的话就是network 然后选中副标题媒体 之后你们就能看见,肯定会有一个这样的东西双击打开它…

Centos7 更改Apache默认网站目录

1.找到httpd的配置文件 [rootlocalhost ~]# find / -name httpd.conf标出来的这两个文件都是apache的配置文件,只是一个是系统自带的(/etc/httpd/conf/httpd.conf),一个是yum安装产生的(/usr/local/apache2/conf/httpd…

java企业 网站源码 后台springmvc SSM 前台 freemarker 静态引擎

代码介绍: 1.网站后台采用主流的 SSM 框架 jsp JSTL,网站后台采用freemaker静态化模版引擎生成html 2.因为是生成的html,所以访问速度快,轻便,对服务器负担小 3.网站前端采用主流的响应式布局,同一页面同…

OpenCms “傻瓜建站”之 templateTwo 模块——布局篇

OpenCms “傻瓜建站”之 templateTwo 模块——布局篇1、创建测试网站“ttWeb”&#xff0c;在/sites/下创建名称为 ttWeb 的文件夹&#xff0c;标题设置为“templateTwo Web 测试”&#xff1b; 2、在opencms-system.xml文件中的 <sites> 节点中增加如下设置&#xff1a…

laravel为网站添加支付功能流程(支付宝)

为网站添加支付功能&#xff0c;本博客以添加支付宝接口为例。 一、创建应用 链接&#xff1a;蚂蚁金服开放平台 进入蚂蚁金服开放平台->开发者中心->网页&移动应用 按需求选择创建应用 选择应用功能 然后提交审核&#xff0c;大部分功能需要签约后才能使用。等…

seo初识:发布一个新的网站首先该做些什么?

一、页面对SEO流量的影响 一个网站最先产生的是页面&#xff0c;无论是首页、列表页、详情页或者其他页面。这些页面是否有人搜索&#xff0c;怎么合理的部署该页面的TDK是最开始的SEO工作&#xff0c;也是很重要的SEO工作之一。 二、爬虫 网络爬虫是一个自己主动提取网页的程…

腾讯云+tipask快速搭建基于laravel的CMS网站

一、购买腾讯云服务器&#xff0c;服务市场->基础环境->选择WordPress平台镜像 二、按照tipask教程安装 tipask官方教程地址https://wenda.tipask.com/article/22 官方教程对新手不太友好&#xff0c;我整理如下&#xff1a; 1.ftp上传文件 云服务器镜像装载完毕后&a…

SEO之关键词

长尾词 较长的、比较具体的、搜索次数比较低的词。 单个长尾词搜索次数少&#xff0c;但词的总体数量庞大&#xff0c;加起来的总搜索次数不比热门关键词搜索次数少&#xff0c;甚至更多&#xff0c;而且搜索意图更明确。 大型网站的长尾流量往往远超热门词的流量。 长尾词竞争…

音乐web网站(最后面有项目下载链接)

哔哩哔哩上项目的演示视频以及部署教程视频链接 https://b23.tv/BV18i4y1b7xc/p1 后端是java,&#xff0c;数据库用的mysql&#xff0c;前端HTMLCSSjQuery。前后端数据交互用的ajax&#xff0c;交互数据格式是json。 没登录的时候就是在首页只显示热门歌单 这是歌单界面&#…

大型网站图片服务器架构的演进

目录(?)[-] 单机时代的图片服务器架构集中式集群时代的图片服务器架构实时同步集群时代的图片服务器架构改进共享存储独立图片服务器独立域名的好处当前的图片服务器架构分布式文件系统CDN解决方案如下作者介绍 在主流的Web站点中&#xff0c;图片往往是不可或缺的页面元素&am…

大型网站架构体系的演变(上)

互联网上有很多关于网站架构的各种分享&#xff0c;有些主要是从运维和基础架构的角度去分析的&#xff08;堆机器&#xff0c;做集群&#xff09;&#xff0c;太关注技术细节实现&#xff0c;普通的开发人员基本看不太懂。 本文上篇将主要介绍大型网站基础架构的扩展&#xff…

大型网站架构体系的演变(下)

接着上篇的继续 在做扩展满足了基本的性能需求后&#xff0c;我们会逐渐关注“可用性”&#xff08;也就是我们通常听别人吹牛时说的SLA、几个9&#xff09;。如何保证真正“高可用”&#xff0c;也是个难题。 几乎主流的大中型互联网公司&#xff0c;都会有用到类似的架构&…

一个好用的开源在线时序图(波形图)绘制网站

网页分为上下两个面板&#xff0c;上面板输入一些代码&#xff0c;下面板就会显示对应的波形。有网页在线编辑和windows .exe安装版。 https://wavedrom.com/editor.html https://github.com/zhajio1988/wavedrom

为你的网站做一个安装文件

一个网站做完之后&#xff0c;马上就要上传到服务器上使用了&#xff0c;如果在上传服务器上使用的时候&#xff0c;做一个setup文件&#xff0c;直接在服务器上setup安装一下&#xff0c;这种感觉是不是很cool&#xff1f;那我们就试一试这种很cool的感觉吧。 在做好的网站项目…

PHP开发支付宝之网站支付--流程简介

前言 前端时间自己开发了一个drupal的支付宝模块&#xff0c;现在整理一下过程&#xff0c;因为支付宝官方网站提供的接口及文档都是新接口的&#xff0c;而且使用新接口的过程比较麻烦一点&#xff0c;所以整理一下 1.支付宝的账号必须经过企业资格的审核才可以进行正式环境…