高可用HA(High Availability)是分布式系統(tǒng)架構設計中必須考慮的因素之一,它通常是指,通過設計減少系統(tǒng)不能提供服務的時間。假設系統(tǒng)一直能夠提供服務,我們說系統(tǒng)的可用性是100%。如果系統(tǒng)每運行100個時間單位,會有1個時間單位無法提供服務,我們說系統(tǒng)的可用性是99%。很多公司的高可用目標是4個9,也就是99.99%,這就意味著,系統(tǒng)的年停機時間為8.76個小時。
我們都知道,單點是系統(tǒng)高可用的大敵,單點往往是系統(tǒng)高可用最大的風險和敵人,應該盡量在系統(tǒng)設計的過程中避免單點。方法論上,高可用保證的原則是“集群化”,或者叫“冗余”:只有一個單點,掛了服務會受影響;如果有冗余備份,掛了還有其他backup能夠頂上。保證系統(tǒng)高可用,架構設計的核心準則是:冗余。有了冗余之后,還不夠,每次出現(xiàn)故障需要人工介入恢復勢必會增加系統(tǒng)的不可服務實踐。所以,又往往是通過“自動故障轉(zhuǎn)移”來實現(xiàn)系統(tǒng)的高可用。
(1)客戶端層:典型調(diào)用方是瀏覽器browser或者手機應用APP
(2)反向代理層:系統(tǒng)入口,反向代理
(3)站點應用層:實現(xiàn)核心應用邏輯,返回html或者json
(4)服務層:如果實現(xiàn)了服務化,就有這一層
(5)數(shù)據(jù)-緩存層:緩存加速訪問存儲
(6)數(shù)據(jù)-數(shù)據(jù)庫層:數(shù)據(jù)庫固化數(shù)據(jù)存儲
高可用,高可靠,高擴展,高并發(fā),高性能;
操作系統(tǒng)Windows Server 2008 R2 or Windows Server 2012 Linux :
centos,ubuntu等
應用服務器IIS 7.0,apache,nginx,tomcat
開發(fā)語言C#,Asp.net PHP,JAVA
數(shù)據(jù)庫MySQL MSSQL Oracle ,Nosql;
寫好腳本,一健安裝部署,集群部署,全開源技術,無版權后顧之優(yōu)
高可用HA(High Availability)是分布式系統(tǒng)架構設計中必須考慮的因素之一,它通常是指,通過設計減少系統(tǒng)不能提供服務的時間。
方法論上,高可用是通過冗余+自動故障轉(zhuǎn)移來實現(xiàn)的;