1. 程式人生 > >[轉貼] 著名社交網站LinkedIn的Java架構技術

[轉貼] 著名社交網站LinkedIn的Java架構技術

JavaOne 2008的會議上,著名社交網站LinkedIn的開發者做了2個關於LinkedIn網站的架構技術的演講,目前這兩個演講的PPT已經可以下載了。下載地址如下:

需要註冊才可以下載,能下載PDF版本。

LinkIn開發者透露LinkedIn 99%都是用java寫的,除了快取通過C++實現。

下面是詳細架構圖:  

可以看一下LinkedIn網站的基本情況:     1、2千2百萬使用者     2、每個月4百萬獨立使用者訪問     3、每天4千萬page view     4、每天2百萬搜尋流量     5、每天25萬邀請傳送     6、每天1百萬的回答提交     7、每天2百萬的email訊息傳送

這是一個世界頂尖級別流量的網站了,看看LinkedIn的系統架構:     * 作業系統:Solaris (running on Sun x86 platform and Sparc)     * 應用伺服器:Tomcat and Jetty as application servers     * 資料庫:Oracle and MySQL as DBs     * 沒有ORM,直接用JDBC No ORM (such as Hibernate); they use straight JDBC     * 用ActiveMQ在傳送JMS. (It’s partitioned by type of messages. Backed by MySQL.)     * 用lucene做搜尋Lucene as a foundation for search     * Spring做邏輯架構Spring as glue

下面是隨著流量增加,LinkedIn的架構演化:

2003-2005     1、一個整體的web程式,     2、一個核心資料庫,     3、在Cloud中快取所有network圖,Cloud是用來做快取的獨立server。     4、用lucene做搜尋,也跑在Cloud中。

2006年     1、複製另外一個數據庫,減少直接load核心資料庫,另外一個server來管理非只讀資料庫的資料更新     2、把搜尋從Cloud中移出來,單獨一個server跑搜尋     3、增加Databus資料匯流排來更新資料,這是通過分散式更新的核心元件,任何元件都需要Databus

2008年     1、WebApp不再任何事情都它自己做,把業務邏輯分成很多部分,通過server群來做。WebApp仍然提供使用者介面給使用者,但是,通過server群來管理使用者資料,小組等等。     2、每個服務有自己的域資料庫     3、新的架構允許其他應用連結LinkedIn,比如增加的招聘和廣告業務。

The Cloud     1、Cloud是整個架構最重要的部分,整個LinkedIn的網路圖都快取在Cloud裡面     2、Cloud大小:22M nodes, 120M edges     3、需要12GB RAM     4、在生產環境要跑40個例項     5、從硬碟重建Cloud一個例項需要8個小時     6、Cloud通過databus實時更新     7、關閉時持久化到硬碟     8、快取通過C++實現,用JNI呼叫,LinkedIn選擇C++而不是Java有兩個原因:        1)儘可能的減少RAM的使用        2)垃圾收集暫停會殺死整個系統,LinkedIn用了最新的GC程式,也就是就是說java的的垃圾蒐集效能不太好     9、將所有東西放在快取裡面是一種限制,但是LinkedIn指出,分割業務圖將更麻煩     10、Sun提供了2TB的RAM

Communication Architecture交流架構包括:

Communication Service Communication Service是用來提供永久資訊的,比如收件箱裡面的訊息和email     1、整個系統通過JMS非同步通訊     2、客戶端用JMS傳送訊息     3、訊息通過路徑伺服器來到達相應的郵箱或者直接放到email程序中     4、訊息傳送:同時使用Pull主動尋求資訊(如使用者需要資訊)和Push傳送資訊(如發email)     5、使用Spring和LinkedIn專業Spring外掛完成,使用HTTP-RPC

Scaling Techniques     1、通過功能來劃分:傳送,接受,文件等。     2、通過類別來劃分:使用者信箱,訪問者信箱等     3、等級劃分:使用者ID等級,Email等級等     4、所有的操作都是非同步的。

轉自 http://www.wokaoo.com/2008/06/%E8%91%97%E5%90%8D%E7%A4%BE%E4%BA%A4%E7%BD%91%E7%AB%99lin