讀大型網站技術架構---第一篇---第三章---架構要素
阿新 • • 發佈:2018-11-10
大型網站的架構要素分為5個大類,有5個大類的一些標準。
1.效能
網站的效能優化手段有很多,主要分為下面幾種:
1.1 瀏覽器端:
瀏覽器快取,使用頁面壓縮,合理佈局頁面,減少Cookie傳輸手段,CDN;
1.2 應用伺服器端:
伺服器本地快取和分散式快取,加速請求處理過程,減輕資料庫負載壓力;非同步操作通過訊息佇列處理任務;
1.3 叢集:
組成叢集共同對外提供服務;
1.4 程式碼層面:
多執行緒,改善記憶體管理等手段;
1.5 資料庫服務端:
索引,快取,SQL優化,NoSQL資料庫通過優化資料模型,儲存結構,伸縮性等方面提升效能;
1.6 其他指標
響應時間,TPS,系統性能計數器等手段;
2. 可用性
主要手段就是冗餘,應用部署在多臺伺服器上同時提供訪問,資料儲存在多臺伺服器上互相備份。
3. 伸縮性
伸縮性是指通過不斷向叢集中加入伺服器的手段來緩解不斷上升的使用者併發訪問壓力和不斷增長的資料儲存需求。
應用伺服器叢集:
只要伺服器上沒有資料儲存,所以伺服器都是對等的,通過合適的負載均衡裝置就可以加入伺服器;
快取伺服器叢集:
新加入的伺服器可能會導致快取路由失效,進而導致叢集中大部分快取資料無法訪問,此處可以使用一致性Hash演算法,這個在之前的研究中寫過了。
關係型資料庫:
關係型資料庫支援資料複製,主從熱備等機制,但是大規模叢集的可伸縮性很難做,因此針對關係型資料庫的叢集伸縮性方案必須在資料庫之外實現,通過路由分割槽等手段將部署有多個數據庫的伺服器組成一個叢集。
NoSQL資料庫產品:
支援性非常好。
4.擴充套件性
網站可擴充套件結構的主要目的:使其能夠快速響應需求變化。
主要標準:
在網站增加新業務產品時,是否可以實現對現有產品透明無影響,不需要改動或者很少改動既有業務就可以上線新產品。
主要手段:
事件驅動架構:利用訊息佇列實現;
分散式服務:業務和可複用業務分離開來,通過分散式服務框架呼叫。
5. 安全性
針對現存和潛在的各種攻擊於竊密手段,是否有可靠的應對策略。