自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

專訪人人網(wǎng)黃晶:SNS網(wǎng)站后臺架構探秘

原創(chuàng)
開發(fā) 前端 企業(yè)動態(tài)
在了解了世界最大的PHP站點Facebook的后臺架構后,我們不禁想問:國內的SNS站點在使用哪些后臺技術呢?對此,51CTO獨家專訪了現(xiàn)任人人網(wǎng)產(chǎn)品技術高級總監(jiān)黃晶老師,由他來給大家介紹一下國內大型SNS網(wǎng)站的代表人人網(wǎng)的后臺架構情況。

【51CTO獨家專訪】51CTO在此之前報道過一篇名為《世界***的PHP站點 Facebook后臺技術探秘》的文章,讓我們了解到Facebook是如何保證5億用戶的系統(tǒng)一直保持穩(wěn)定、可靠運行的。如果說Facebook離我們有些遠的話,那么相信人人網(wǎng)是大家再熟悉不過的一個SNS網(wǎng)站了。(相關閱讀:國內外大型SNS網(wǎng)站后臺架構對比

人人網(wǎng) 
人人網(wǎng)首頁

人人網(wǎng)作為國內大型SNS站點的代表,其目前已經(jīng)擁有真實注冊用戶超過7000萬、PV達到了4億、日登錄2200萬人次。面對如此龐大的訪問量,人人網(wǎng)的后臺架構是怎樣的一番景象呢?關于此,51CTO獨家專訪了現(xiàn)任人人網(wǎng)產(chǎn)品技術高級總監(jiān)黃晶老師。

人人網(wǎng)產(chǎn)品技術高級總監(jiān)黃晶老師 
人人網(wǎng)產(chǎn)品技術高級總監(jiān)黃晶老師

在今年4月24日召開的Qcon 2010技術大會上,51CTO也曾對黃晶老師進行過采訪,詳情請閱讀《51CTO專訪人人網(wǎng)黃晶:WEB開發(fā)需要隨需應變

51CTO作為國內大型SNS站點的代表,我們知道人人網(wǎng)后臺主要采用Java語言編寫,同其他形式的站點相比,SNS站點在網(wǎng)站架構方面有什么樣的特點?

黃晶老師:SNS網(wǎng)站用戶數(shù)據(jù)量龐大且關系復雜,對實時性要求非常高,因此要求SNS網(wǎng)站架構要有很強的水平擴展性。

51CTO在后臺語言的選擇上,有其他大型SNS站點使用PHP,人人網(wǎng)則選擇了Java,使用Java的優(yōu)勢在體現(xiàn)哪些方面?

黃晶老師:Java的優(yōu)勢體現(xiàn)在當項目日漸復雜的時候,可以通過Java良好的OO特性,保持非常好的模塊性,在進行網(wǎng)站重構的時候比較方便,在代碼量增大的時候也可保持良好的可管理性。

51CTO現(xiàn)在很多大型網(wǎng)站的后臺都使用了大量的開源軟件,人人網(wǎng)是否也是如此呢?咱們的開發(fā)團隊是否也在開發(fā)自己的框架呢?

黃晶老師:人人網(wǎng)也使用了大量開源軟件,比如MySQL、Memcached、ICE、Hadoop等,同時我們也根據(jù)業(yè)務需要研發(fā)了自己的框架,比如MVC框架,分布式KV存儲系統(tǒng)。

#p#

51CTO一個網(wǎng)站在發(fā)展過程中,后臺都會經(jīng)歷不斷的重構,從初期的校內網(wǎng)、到現(xiàn)在的人人網(wǎng),網(wǎng)站架構***的變化在哪?

黃晶老師:從初期的校內網(wǎng)到現(xiàn)在人人網(wǎng),***的變化是:很多底層服務都從利用已有開源軟件的搭建,變成了根據(jù)業(yè)務需要,由我們自己開發(fā)專門的服務所代替,這樣能夠提高資源利用程度,提高整個系統(tǒng)的可用性。

51CTO我們知道人人網(wǎng)的用戶量非常龐大,在數(shù)據(jù)庫方面,人人網(wǎng)采用了哪種數(shù)據(jù)庫?除了高性能、可擴展性外,人人網(wǎng)對數(shù)據(jù)庫的需求還有哪些?在整個后臺系統(tǒng)架構中,往往數(shù)據(jù)庫的性能也會出現(xiàn)瓶頸,從早期的校內網(wǎng)到現(xiàn)在,我們對數(shù)據(jù)庫性能的優(yōu)化方面都做了哪些大的改變?

黃晶老師:我們采用的數(shù)據(jù)庫是MySQL,在需求方面,我們也非常關注高可用性。早期校內從單數(shù)據(jù)庫,到主從接口,發(fā)展到后來垂直拆分,然后水平拆分,然后在每個節(jié)點上實現(xiàn)主-主提高可用性,到異地備份容災。目前我們的數(shù)據(jù)庫已經(jīng)有非常強的水平擴展能力和非常高的可用性。

關于MySQL,51CTO推薦專題:MySQL數(shù)據(jù)庫入門與精通教程

51CTO數(shù)據(jù)緩存在后臺架構中同樣非常重要,在數(shù)據(jù)庫服務器、Web服務器以及兩者之間,人人網(wǎng)都采用了哪些緩存手段?

黃晶老師:我們的數(shù)據(jù)庫用到了部分自身緩存機制,比如盡可能利用innodb的pool和MySQL的Query Cache。在中間用到Memcached,以及基于ICE通訊框架由我們自己編寫的包含業(yè)務邏輯處理能力的緩存服務,在我們自行開發(fā)的分布式KV系統(tǒng)中也會充分利用內存Cache加速。

推薦閱讀:分布式緩存系統(tǒng)memcached簡介與實踐

51CTO目前國內外也有很多大型站點在使用NoSQL,從功能上來將,其非常適合應用在SNS、微博等站點,人人網(wǎng)是否在考慮使用NoSQL呢?

黃晶老師:對于NoSQL,我們已經(jīng)考慮并在逐步試用自行開發(fā)的Nuclear分布式KV存儲系統(tǒng)。

關于NoSQL,51CTO推薦專題:NoSQL:關系型數(shù)據(jù)庫終結者?

51CTO上傳照片或者圖片是SNS網(wǎng)站用戶很常用的一個功能,對于Web服務器來講,圖片是非常消耗資源的,那么目前人人網(wǎng)每天大概有要處理多少張圖片?相比較其他數(shù)據(jù)而言,圖片會占用大量存儲空間,給服務器帶來不小的壓力,我們知道Facebook有著一套自己的圖片存儲架構,咱們人人網(wǎng)在這方面是怎么做的呢?

黃晶老師:現(xiàn)在人人網(wǎng)每天要處理千萬張級別的照片數(shù)量。我們使用由C++專門編寫的Web服務來處理照片上傳和壓縮工作。存儲是用一套分布式文件存儲系統(tǒng),在小文件很多的情況下,也會采用把小文件聚合為大文件的方式提高性能,這樣的做法也便于大量小文件的備份。

51CTO目前SNS站點都有很強的實時性,用戶能夠***時間看到好友都在做什么,像人人網(wǎng)以及Facebook等,還有即時聊天功能,我們是通過什么樣的手段來***限度的優(yōu)化每一個頁面,從而盡可能的減少服務器的請求時間,提高用戶體驗的呢?

黃晶老師:我們的做法是盡可能把數(shù)據(jù)放在內存中,提高數(shù)據(jù)存取速度。另外,復雜的頁面采用并發(fā)機制,多線程同時從多個后臺源取數(shù)據(jù)拼成頁面。

51CTO***,還想請黃晶老師談一談SNS網(wǎng)站后臺技術的發(fā)展趨勢,以及從事SNS后臺開發(fā)的開發(fā)者需要關注那幾方面?

黃晶老師:鑒于SNS網(wǎng)站的一些業(yè)務特點,在后臺技術中,我們最關注的仍然是高性能,可擴展性,高可用性。并且SNS所提供的服務也在變化中,對于業(yè)務的多變,架構要有靈活適應的能力,否則需要提供新服務的時候重構之前的系統(tǒng)工作量很大。類似Google的GFS/Bigtable/MapReduce一系列通用的分布式系統(tǒng)非常優(yōu)秀,可以支撐很多Google的業(yè)務需要。所以在SNS網(wǎng)站架構中也需要一個能靈活應對業(yè)務變化的一套健壯的分布式系統(tǒng)。

【51CTO獨家特稿,轉載請注明原文出處及作者!】

【編輯推薦】

  1. 51CTO專訪人人網(wǎng)黃晶:WEB開發(fā)需要隨需應變
  2. 世界***的PHP站點 Facebook后臺技術探秘
  3. 大型網(wǎng)站架構技術專家談
  4. 大規(guī)模網(wǎng)站架構技術原理透析
  5. 大型網(wǎng)站架構不得不考慮的10個問題
責任編輯:王曉東 來源: 51CTO.com
相關推薦

2010-04-27 16:33:13

WEB開發(fā)

2010-09-25 08:51:00

SNS網(wǎng)站Facebook人人網(wǎng)

2011-12-21 15:52:33

2011-06-27 13:44:42

人人吳疆SNS

2011-06-27 13:53:32

人人吳疆SNS

2013-09-03 10:10:00

人人網(wǎng)移動開發(fā)架構

2013-09-03 10:22:02

人人網(wǎng)移動開發(fā)架構

2010-12-31 14:09:27

2011-09-27 07:26:33

程序員

2017-11-24 08:32:04

架構設計存儲

2012-12-11 15:14:25

謝騁超服務器架構

2009-08-03 16:22:00

富士通SOP動立方

2010-07-23 13:39:19

SNS網(wǎng)站

2011-03-14 13:40:02

移動Web架構人人網(wǎng)

2011-12-08 14:09:07

2010-04-25 15:29:58

Twitter可伸縮性

2011-04-13 13:28:46

JavaScript程序員

2019-04-18 14:24:52

技術互聯(lián)網(wǎng)架構

2009-10-23 10:35:28

SNS傳統(tǒng)

2011-12-13 14:15:30

點贊
收藏

51CTO技術棧公眾號