對於該系統的可用性來講。網站的可用性度量,應達到3個9的標準。
那麼如何才能提升系統的可用性,首先最基本的是採用較昂貴的硬件設備,這樣宕機的機率會小一些。若是採用PC級服務器、開源的數據庫和操做系統,這些廉價的設備在節約成本的同時也下降了可用性。既然硬件故障是常態,那麼就要經過網站的高可用架構設計保證服務器硬件故障時服務依然可用、數據依然保存並可以被訪問。實現該架構的手段是:數據和服務的冗餘備份及失效轉移。當一些服務器宕機。就將服務切換到其餘可用的服務器上,若是磁盤損壞,則從備份的讀取數據。
該網站分爲三層架構,數據層、服務層、應用層。應用層負責具體的業務邏輯處理,應用層經過用戶界面與用戶進行交互,而且調用服務層的各類可服用服務。服務層負責提供可複用的服務。數據層負責數據的存儲與訪問。例如普通用戶進行填報,先要調用登錄服務,而後進入用戶界面,進行填報操做,網站調用數據層數據庫服務,將數據存儲。
位於應用層的服務器常爲了應對高併發的訪問請求,會經過負載均衡設備將一組服務器組成一個集羣共同對外提供服務,當負載均衡設備經過心跳檢測等手段監控到某應用服務器不可用時,就將其從集羣列表中剔除,並將請求分發到集羣中其餘可用的服務器上,使整個集羣保持可用,從而實現應用高可用。服務層的服務器與應用層相相似。數據層須要在數據寫入時進行數據同步複製,實現數據冗餘備份。當服務器宕機時,應用程序將訪問切換到有備份數據的服務器上。
還有別的一些可用行服務策略:分級管理,由於提交徵集表比查看更重要因此,提交的等級比查看等級高。超時設置,設置服務調用的超時時間,一旦超時,通訊框架就拋出異常,應用程序根據服務調度策略,可選擇繼續重試或將請求轉移到提供相同服務 的其餘服務器上。異步調用,應用對服務的調用經過消息隊列等異步方式完成,避免一個服務失敗致使整個應用請求失敗。服務降級,在網站訪問高峯,能夠拒絕低級應用的調用,關閉部分不重要的服務。等冪性設計。
網站架構要有伸縮性,不須要改變網站的軟硬件設計,僅僅經過改變部署的服務器數量就能夠擴大或者縮小網站的服務處理能力。
實現網站伸縮性能夠分離網站的不一樣功能,有兩種分離方法,縱向分離將業務處理流程上的不一樣部分分離部署;橫向分離,將不一樣的業務模塊分離部署。而後使用服務器集羣,將相同服務部署在多臺服務器上構成一個集羣總體對外提供服務。經過負載均衡器對服務器進行調整。
數據庫