國內外大型SNS網站後臺架構對比

  • 本文我們將對比Facebook和人人網的後臺架構,在找出這些差異的同時,我們也能夠看出,跟國外相比,國內SNS網站的後臺技術差距還有多大?差距在哪裏?

【51CTO觀察】要問時下什麼類型的站點人氣最旺?答案當屬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://developer.51cto.com

發佈了34 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章