《構建高效能的web站點》讀書筆記 元件分離

2022-03-31 13:27:45 字數 1428 閱讀 5208

元件分離可以說是很多**都在採用、最基礎的提高**吞吐的策略。比如我們看**:像fuzhuang.taobao.com、home.taobao.com這樣二級站點的分離,再比img01.taobaocdn.com、img02.taobaocdn.com的分離,a.tbcdn.cn樣式的分離等,都是元件分離。

這裡的元件就是所有基於url訪問的資源,如動態內容、、指令碼、樣式等;元件的分離就是這些元件的垂直分割,不同的資源分布到不同的伺服器或相同伺服器的不同邏輯單元,並且配以獨立的網域名稱(頂級網域名稱或二級網域名稱)。從請求表面上,請求不同站點的資源,但是他們仍可以完美組成乙個完整的頁面。這本身也是負載均衡策略的一種,可以實現站點規模的擴充套件,以後會提到在各個元件之間內部實現負載均衡或集群。

分離對我們來說到底有多大的驅動力:

1,「因材施教」,提高**吞吐。我們知道,不同的資源對於伺服器的硬體資源的需求是不一樣:動態內容需要大量計算或訪問資料庫,就需要cpu、記憶體的資源,而靜態檔案更需要的是i/o操作。通過分離我們可以針對特定的資源,「因材施教」,讓元件可以充分利用伺服器資源,以較成本提高伺服器吞吐。

3,提高**健壯性和可擴充套件性。就如上面所說這是負載均衡策略的一種,站點規模達到一定程度,這是我們必須選擇路徑,在此基礎上,我們可以運用更多的負載均衡策略,以此提高**的負載。

把js、css、等靜態資源從主站獨立到靜態的站點,這可能是我們最簡單有效的分離策略了,但是這還遠遠不夠。就算是同類的元件,可能在檔案大小、數量、更新頻率、預計併發使用者數、是否要指令碼、是否需要大量的cpu運算、是否訪問資料庫、主要是讀還是寫資料庫操作、是否要遠端呼叫等等方面都存在很大的差異。例如對於來說,有可能是**頁面用到的基礎,也可能是使用者上傳的大,這就要我們不同方式來區別對待。同是動態頁面,呈現內容的頁面和用於收集資訊的動態頁面,我們仍可以視為不同類的元件加以區別對待。

因此為元件分離提供一種最優最佳的方法肯定是乙個需要不斷進步的過程,我們必須從實際的業務需求,區分不同元件的要求,使得不同的元件能充分有效利用伺服器資源,達到符合各自實際情況的吞吐最大化。

動態內容

但是對於所有的動態程式,我們仍可以提供相同的「教」,為它們提供良好的空間:速度快的cpu、大容量的記憶體、特定優化的系統和伺服器軟體、與資料庫保持高速連線、穩定可靠的資料中心,持續優化的程式架構

靜態內容

就是直接儲存於伺服器的html、等檔案,不需要動態指令碼執行,可以節省一定的cpu和記憶體的開銷,更需要的是i/o操作。我們可以需要乙個針對靜態檔案優化的檔案系統和伺服器軟體之外、使用高速磁碟、使用raid分割槽、提高伺服器頻寬也是可以採用的方法。另外不要忘了瀏覽器快取,特別對於、指令碼、樣式等不太容易變化的內容,採用乙個較長時間的瀏覽器快取策略,是乙個比較好的方法。

如果**規模擴大,先規劃下元件分離吧,下篇分享負載均衡。

構建高效能Web站點 筆記四

第七章 web伺服器快取 對url對映進行快取 ssi模式下對內容的通讀 有什麼提高?需要了解url解析過程。對於apache,它提供了兩個磁碟快取和記憶體快取mod disk cache,mod mem cache。mod disk cache在磁碟上維護了一塊多個程序的快取區,在效能上比mod ...

《構建高效能WEB站點》讀書筆記 第一章

1.等待的真相 1 資料在網路上的傳輸時間。2 服務端處理請求,並生成返回資料的時間。3 瀏覽器本地計算與渲染的時間。2.瓶頸在 問題的本質是什麼?你搞清楚麼,了解本質的原理麼?3.常見的調優方案 1 增加頻寬。2 減少網頁中的http請求。3 加快服務端指令碼的計算速度 解析器優化 4 動態內容快...

Web負載均衡 《構建高效能web站點》讀書筆記

對於web站點的水平擴充套件,負載均衡是一種常見的手段。負載均衡可以一下幾類 1 http重定向 2 dns負載均衡 3 反響 負載均衡 4 ip負載均衡 5 直接路由 6 ip隧道 1 http重定向 http協議在相應頭資訊中定義了location標記。實現請求轉移和自動跳轉。可以利用這一特性實...