WikiPedia技術架構學習筆記

2022-03-24 03:22:26 字數 1545 閱讀 1786

維基百科(wikipedia)是乙個基於wiki技術的全球性多語言百科全書協作計畫,同時也是一部在網際網路上呈現的網路百科全書,其目標及宗旨是為全人類提供自由的百科全書──用他們所選擇的語言來書寫而成的,是乙個動態的、可自由和的全球知識體。

1、wikipedia的相關資料

wikipedia的資料**來自wikimedia architecture.pdf

2、系統架構圖

3、geodns

這個geodns可能比較新奇,實際上原理很簡單,geodns是乙個為bind寫的40行的小程式,可以讓dns解析的時候考慮地域因素——讓使用者能夠訪問離他地域最近的web伺服器

4、用lvs實現負載均衡

wikipedia 用 lvs 做負載均衡, 是章文嵩博士發起的專案,也算中國人為數不多的在開源領域的驕傲啦。lvs 維護的乙個老問題就是監控了,維基百科的技術人員用的是 pybal.

5、用lighttpd做伺服器

lighttpd是乙個德國人領導的開源軟體,其根本的目的是提供乙個專門針對高效能**,安全、快速、相容性好,並且靈活的web server環境。具有非常低的記憶體開銷,cpu佔用率低,效能好,以及豐富的模組等特點。lighttpd是眾多opensource輕量級的web server中較為優秀的乙個。支援fastcgi, cgi, auth, 輸出壓縮(output compress), url重寫, alias等重要功能,而apache之所以流行,很大程度也是因為功能豐富,在lighttpd上很多功能都有相應的實現了,這點對於apache的使用者是非常重要的,因為遷移到lighttpd就必須面對這些問題。

6、使用mediawiki軟體

對 mediawiki 的應用層優化細化得快到極致了。用開銷相對比較小的方法定位**熱點,參見實時效能報告,瓶頸在**,看這樣的圖樹展示一目了然。另外乙個十分值得重視的經驗是,盡可能拋棄複雜的演算法、代價昂貴的查詢,以及可能帶來過度開銷的 mediawiki 特性。

7、大量快取(cache)

維基百科**成功的第一關鍵要素就是 cache 了。cdn(其實也算是 cache) 做內容分發到不同的大洲、squid 作為反向**. 資料庫 cache 用 memcached,30 臺,每台 2g 。對所有可能的資料盡可能的cache,但他們也提醒了 cache 的開銷並非永遠都是最小的,盡可能使用,但不能過度使用。

squid,~17臺,p4,3~4gb記憶體,1u機架伺服器,fedoracore3;squid 大部份應付未登入使用者的需求,快取命中率達75%,有效的減輕apache的負載。負載平衡是以round-robin dns法來達成。

8、用mysql資料庫集群

mediawiki 用的db 是 mysql. mysql 在 web 2.0 技術上的常見的一些擴充套件方案他們也在使用。 複製、讀寫分離......應用在 db 上的負載均衡通過 loadbalancer.php 來做到的,可以給我們乙個很好的參考。

9、web伺服器

apache,49臺,p4,1~4gb記憶體,1u機架伺服器,fedoracore2;執行php,且搭配turck的php快取系統以增進效能。這些伺服器以nfs共享工作目錄,以實現同步運作。

**自:

學習筆記 虛擬化實現技術架構

1.處理器虛擬化 vmm陷入 方式 1 基於處理器保護機制觸發的異常,處理器會在執行敏感指令前,檢查其執行條件是否滿足,不滿足就會陷入vmm進行處理。2 虛擬機器主動觸發異常,虛擬機器通過陷阱指令主動陷入到vmm中。3 非同步中斷,一旦中斷訊號到達處理器,處理器會強行中斷當前指令,然後跳轉到vmm註...

DDS技術架構

dds技術架構 資料收集 dds的目標 1 促進分布式系統中資料分發的效率 2 實時 可信和高效能的發布 訂閱中介軟體,其語義可通過服務質量 qos,quality of service 標準進行控制。dds基本框架 dds標準化了資料交換的介面和行為,它描述了兩個層次的介面 1 以資料為中心的發布...

eSIM技術架構

為了實現esim的業務需求rsp技術標準定義了一套包含管理平台 終端 euicc以及相關配套設施的技術體系。主要實體包括以下6個方面。euicc profile的硬體載體,類似於傳統usim卡的uicc,但軟硬體更複雜,可滿足動態載入運營商資料的需要。同一張euicc上可以載入屬於不同運營商的多份p...