《大型网站技术架构》5、6、7章阅读笔记
一、網站的可用性
網站的可用性,描述網站可有效訪問的特性,相比于網站的其他非公能特性,網站的可用性更牽動人們的神經,大行網站的不可用事故更是直接影響公司形象和利益,許多網站都將網站可用性列為工程師的績效考核和工資掛鉤。
可用性指標是網站架構設計的重要指標。對外是服務承諾,對內是考核指標,具體到每個工程師的考核,一般使用故障分。“鼓掌分”是對網絡故障進行分類加權計算故障責任的方法。計算公式為:故障分=故障時間(分鐘)*故障權重。
通常企業級應用系統為了提高系統的可用性,會采用較昂貴的軟硬件設備,而互聯網公司一般采用PC級服務器、開源數據庫等廉價的的設備,這些設備在節約成本的同時也降低了系統的可用性,這時就需要“高可用的網站架構”。其設計目標就是保證服務器故障時服務依然可用,數據依然保存并可以被訪問。而實現這一目的的方法就是“數據和服務的冗余備份”以及失效轉移。
一個網站的設計通常要分為三級結構:應用層、服務層、數據層。各層之間有相對獨立性。應用層主要負責具體業務邏輯處理;服務層提供可復用的服務;數據層負責數據的儲存與訪問。
為了保證數據的高可用,網站通常會犧牲另一個很重要的指標:數據一致性。高可用的數據有如下幾個層面的含義:
①數據持久性:儲存數據時,需要寫入持久性儲存,還需要將數據備份一個或多個副本,存放在不同儲存設備上以防丟失。
②數據可訪問性:當一個儲存設備損壞時,就要將訪問路徑切換到另一個儲存設備上,如果這個過程不能很快完成,這段時間數據是不可訪問的。
③數據一致性:在數據有多份副本的情況下,如果網絡出現故障,那么多個備份將出現不一致。
CPA原理認為,一個提供服務的儲存系統無法同時滿足數據一致性、數據可用性、分區耐受性、這三個條件。
二、網站的伸縮型架構:
所謂網站的伸縮性是指不需要改變網站的軟硬件設置,僅通過改變部署的服務器數量就可以擴大或縮小網站的服務處理能力。
設計一個大型軟件系統或一個大型網站和將一個小網站演化成一個大型網站是完全不同的。前者是先用著,等到不夠用了就換新的;而后者則是先用著,不夠用了再加點。
將不同功能進行分離部署可以實現一定程度的伸縮性,然后再部署服務器集群,即相同服務部署在多臺服務器上構成一個集群整體對外提供服務。當一頭牛拉不動車時不要再找一頭更強壯的牛,而是用兩頭牛來拉車。
利用HTTP重定向協議實現負載均衡,HTTP重定向服務器是一臺普通的應用服務器,其唯一的功能就是根據用戶的HTTP請求計算一臺真實的WEB服務地址,并將該地址寫入HTTP重定向響應中返回給用戶瀏覽器。
三、網站的可擴展架構:
擴展性:指對現有系統影響最小情況下,系統功能可持續擴展或提升的能力。表現在系統基礎設施穩定,不需要經常變更,應用之間較少依賴和耦合,對需求變更可敏捷相應。它是系統架構層面的開閉原則,架構設計考慮未來功能擴展,當系統增加新功能時,不需要對結構和代碼進行修改。
而擴展性最主要的就是降低應用之間的耦合性。
讀了這三篇文章,我覺得,我寫的程序在儲存的時候需要再加一個數據庫,然后所有數據都做雙份備份以備不時之需從而提高軟件可用性。
轉載于:https://www.cnblogs.com/hehejeson/articles/6559997.html
總結
以上是生活随笔為你收集整理的《大型网站技术架构》5、6、7章阅读笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件体系结构课后作业03
- 下一篇: S2SH框架入门之使用hibernate