大型網站技術架構(五)--網站高可用架構
網站的可用性(Avaliability)描述網站可有效訪問的特性。
1、網站可用性的度量與考核
網站不可用時間(故障時間)=故障修復時間點-故障發現(報告)時間點
網站年度不可用時間=(1-網站不可用時間/年度時間)× 100%
可用性指標時網站架構設計的重要指標,對外是服務承諾,對內是考核指標,具體到每個工程師,更多的是使用故障分。
所謂故障分是指對網站故障進行分類加權計算故障責任的方法。如下是個案例:
分類 |
描述 |
權重 |
事故級故障 |
嚴重故障,網站整體不可用 |
100 |
A類故障 |
網站訪問不順暢或核心功能不可用 |
20 |
B類故障 |
非核心功能不可用,或核心功能少數使用者不能訪問 |
5 |
C類故障 |
其他故障 |
1 |
故障分的計算公式為:
故障分=故障時間(分鐘)* 故障權重
2、網站的高可用架構
一個典型的網站設計通常遵循如下圖所示的基本分層模型。
在負載的大型網站架構中,劃分的粒度會更小,更詳細,但通常還是能夠把這些伺服器劃分到這三層中。
對於應用層的伺服器通常為了應對高併發的訪問請求,會通過負載均衡裝置將一組伺服器組成一個叢集共同 對外提供服務,當負載均衡裝置通過心跳檢測到某臺伺服器不可用時,就將其從叢集列表中提出,並將請求分發到叢集中其他 可用的伺服器上,是整個叢集儲存可用,從而實現應用高可用。
位於服務層的伺服器情況和應用層類似,也是通過叢集方式實現高可用,只是這些伺服器被應用層通過分散式服務呼叫框架訪問, 分散式服務排程框架會在應用層客戶端中實現負載均衡功能。
位於資料層的伺服器情況比較特殊,資料伺服器上儲存著資料,為了保證資料不丟失,資料訪問服務不中斷,需要在資料寫入時進行資料同步複製,將資料寫入多臺伺服器上,實現資料冗餘備份。
網站升級的頻率一般都非常高,每次網站釋出都需要關閉服務,重新啟動系統,相當於伺服器當機。因此網站的可用性架構還需要考慮到網站升級 釋出引起的當機。
3、高可用的應用
應用層主要處理網站應用的業務邏輯,也稱為業務邏輯層,應用的一個顯著特點就是應用的無狀態行,因此實現負載均衡相對簡單一點。
Web應用中將這些多次請求的上下文稱為回話(Session),在單機情況下,session可部署在伺服器上的Web容器上管理。在使用負載均衡 的叢集環境中,由於負載均衡伺服器可能會將請求分發到叢集任何一臺應用伺服器上,所以保證每次請求依然能夠獲得正確的session比單機 時要複雜的多。在叢集環境下,session管理主要有 以下手段。
1、Session複製
Session複製是早期企業應用系統使用較多的一種伺服器叢集Session管理機制。應用伺服器開啟Web容器的Session複製功能,在叢集中幾臺伺服器之間同步Session物件,是每臺伺服器上都儲存所有使用者的Session資訊。
這種方案雖然簡單,從本機讀取Session資訊也很快,但當叢集規模比較大的時候會佔用伺服器和網站的大量資源,在大量使用者訪問的情況下,甚至會出現記憶體不夠Session使用的情況。
2、Session繫結
Session繫結可以利用負載均衡的源地址Hash演算法實現,負載均衡伺服器總是將來源於同一IP的請求分發到同一臺伺服器上。這樣在整個回話期間,使用者所有的請求都在同一天伺服器上處理,即Session繫結到某臺特定的伺服器上,保證Session總能在這臺伺服器上獲取,這種方法有成為回話粘滯。
3、利用Cookie記錄Session
一種管理Session的方式是將Session記錄在客戶端,每次請求伺服器的時候,將Session放在請求中傳送給伺服器,伺服器處理完請求後再將修改後的Session響應給客戶端。
4、Session伺服器
Session伺服器,即把session的管理獨立部署在某一臺機器上,Web伺服器不儲存使用者Session資訊,每次都去Session伺服器取資料。
這種解決方案事實上是將應用伺服器的狀態分離,分為無狀態的應用伺服器和有狀態的Session伺服器。對於有狀態的Session伺服器,一種比較簡單的方式是利用分散式快取、資料庫等。
4、高可用的服務
5、高可用的資料
6、高可用的網站質量保證
7、網站執行監控
1、使用者行為日誌收集(伺服器端和瀏覽器端)
相關文章
- 大型網站技術架構(二)--大型網站架構演化網站架構
- 大型網站技術架構(一)--大型網站架構演化網站架構
- 大型網站技術架構——2. 網站架構模式網站架構模式
- 大型網站技術架構(八)--網站的安全架構網站架構
- 大型網站技術架構(三)--架構模式網站架構模式
- 大型網站技術架構(二)--架構模式網站架構模式
- 大型網站技術架構(四)--網站的高效能架構網站架構
- 大型網站技術架構(六)--網站的伸縮性架構網站架構
- 大型網站技術架構(四)--核心架構要素網站架構
- 大型網站架構利器-CDN技術網站架構
- 大型網站架構技術一覽網站架構
- 大型網站技術架構(三)--架構核心要素網站架構
- 大型網站技術架構(七)--網站的可擴充套件性架構網站架構套件
- 大型網站架構網站架構
- 大型網站技術架構核心原理(1)網站架構
- 一張圖看懂大型網站技術架構網站架構
- 大型網站技術架構-入門梳理網站架構
- 大型網站技術架構的演進網站架構
- 大型網站架構系列:電商網站架構案例(1)網站架構
- 大型網站架構系列:電商網站架構案例(2)網站架構
- 大型網站架構系列:電商網站架構案例(3)網站架構
- 網站技術架構網站架構
- 大型網站架構演化網站架構
- 讀書筆記-大型網站技術架構筆記網站架構
- 《大型網站技術架構》讀書筆記網站架構筆記
- 大型分散式網站架構技術總結分散式網站架構
- 《大型網站技術架構:核心原理與案例分析》讀書筆記 - 第4篇 架構師(附 大型網站架構技術一覽)網站架構筆記
- 大型網站的技術架構演進過程網站架構
- 漫談大型網站架構網站架構
- 乾貨 | 大型網站專案架構技術一覽網站架構
- 大型網站技術架構——核心原理與案例分析(二)網站架構
- 大型網站技術架構——核心原理與案例分析(一)網站架構
- 大型網站架構模式筆記網站架構模式筆記
- 大型網站架構之我見網站架構
- 大型網站架構演化歷程網站架構
- 大型網站--負載均衡架構網站負載架構
- 大型網站系統架構演化網站架構
- 大型網站技術架構:核心原理與案例分析筆記網站架構筆記