高可用架構設計全面詳解(8大高可用方案)
來源:mikechen的網際網路架構
1.冗餘
高可用性的冗餘備份,是透過在系統中引入冗餘(Redundancy)來提高系統的可用性。
冗餘備份的目標是:在硬體或軟體出現故障時,系統仍能夠繼續提供服務,這是最常見的高可用解決方案。
這個方案看似簡單,但是重要性反而是最高的,很多人忘卻了這一點。
比如,資料庫裡面的主備,或者主從等等,這些就是典型的冗餘方案。
如下圖所示:
比如:一臺伺服器出現了問題,很快可以採用備用伺服器替換掉,這就是典型的冗餘。
方案不復雜,但是效果確是最好的,所以,我把冗餘放在了第一位,簡單高效。
2.負載均衡
負載均衡在大型網站,以及分散式架構,中介軟體等都會涉及到,除了能解決效能擴充套件,還有一個非常重要的特性:就是解決高可用性。
在負載均衡器層面實現冗餘,確保即使一個負載均衡器出現故障,其他冗餘的負載均衡器能夠接管服務。
如下圖所示:
比如:上圖的應用伺服器1壞掉了,還可以使用應用伺服器2、應用伺服器3來替換掉,可以非常容易的解決高可用性的問題。
這個高可用性方案,也是屬於解決容易,但是效果非常好的情況。
所以,我把負載均衡的可用方案,放到了第二位,價效比還是非常高的。
3.資料備份與恢復
資料備份與恢復,是構建高可用性系統中至關重要的組成部分,很多人低估了這項的重要性。
原因很簡單,什麼最重要?當然,是資料最重要。
所以,一定要養成,定期備份資料的習慣。
備份可以採用以下策略:
完整備份(Full Backup):備份整個資料集。
增量備份(Incremental Backup):備份自上一次備份以來的變化。
組合使用完整備份和增量備份,以在恢復時更加高效。
除此之外,還會涉及到恢復:
需要:定期測試備份的恢復過程,確保備份檔案能夠順利還原資料。
制定災難恢復計劃,包括從備份中快速恢復資料的步驟和流程。
決策級別:
以及,確定哪些資料是關鍵的,需要立即進行恢復,哪些資料可以等待。
4.異地多活
異地多活(Geo-Redundancy),是指在不同地理位置建立多個資料中心。
以確保系統在面對單一資料中心故障、自然災害、或網路問題時,仍能夠提供連續的服務。
如下圖所示:
比如:阿里就會涉及到異地多活的情況。
比如,阿里會有多個機房,在杭州、成都、北京...等等都會有機房。
如果杭州機房出現了故障,比如:火災、地震等突發情況,杭州機房就不能正常工作了。
這個時候,可以把上海等機房來頂替,這樣可以更好的保證可用性。
只不過,這個可用性,更多的是從更高的層面,也就是資料中心來保證可用性而已,屬於更高階別的可用保障。
總之,異地多活高可用性是一種強大的架構,可以提供更高階別的可用性和容災能力。
5.服務高可用
服務熔斷是一種用於保障系統高可用性的設計模式,主要用於防止由於服務故障、或異常導致的級聯故障。
如下圖所示:
設定一定的錯誤率、或響應時間閾值,當服務的錯誤率、或響應時間超過設定的閾值時觸發熔斷。
進入熔斷狀態後,拒絕一段時間內的所有請求,減輕服務的負載。
以及,在熔斷狀態下,提供降級策略,返回預設值或預設響應,以確保系統在熔斷時依然能夠提供有限的功能。
這也是屬於高可用的解決方案,只不過是從服務呼叫來保證而已。
6.自動化運維
自動化運維是保障系統高可用性的重要手段之一,透過自動化運維,可以減少人為錯誤,提高系統的穩定性和可靠性。
比如:
實現自動化的回滾機制,當新版本或配置引發問題時,能夠快速回滾到穩定的版本或配置,減少人工方式,從自動化角度來保證。
以及,配置自動化備份任務,包括:資料備份和系統配置備份,確保資料和配置的安全,同時實現自動化的恢復過程。
這裡的自動化運維,可用結合著上面我提到的冗餘、資料備份、負載等一起結合使用,會極大的提升效率。
7.監控和警報系統
當然,監控和警報系統也是確保系統高可用性的重要組成部分。
這類系統負責:實時監測系統的各種指標、效能引數和執行狀態。
如下圖所示:
監控,比如:CPU利用率、記憶體使用、磁碟空間、網路流量等。
同時在發現異常,或超過閾值時發出警報,以便及時採取措施。
透過建立健全的監控和警報系統,團隊能夠更加及時、準確地發現並解決問題,確保系統的高可用性和穩定性。
所以,大家看到的網際網路大廠,都會有一套非常嚴謹的監控,和報警機制,來保證出現了問題,可更快的解決。
這些都是,非常典型的可用性解決方案。
8.雲服務高可用
如今都是雲的時代了,所以,雲服務的高可用也是很重要。
可用,利用雲服務提供商的高可用性特性,將系統部署在多個區域,並使用雲服務的高階功能。
使用雲負載均衡、彈性計算、雲資料庫、物件儲存等服務,更好的提高可用性。
以上都是常見的高可用架構解決方案,可以根據具體系統、和業務需求選擇適當的組合,從而更好的提高系統的可用性、穩定性。
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70024924/viewspace-3007649/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mysql高可用架構方案MySql架構
- AWS 高可用AWS架構方案架構
- MySQL高可用架構設計分析MySql架構
- 高可用架構架構
- MyCAT高可用方案和架構圖架構
- 高可用+高併發+負載均衡架構設計負載架構
- Oracle 高可用架構Oracle架構
- 如何做高可用的架構設計?架構
- 如何設計兜底方案(高可用)
- Twitter 高併發高可用架構架構
- 高可用解決方案
- Canal高可用架構部署架構
- 【Redis】Sentinel 高可用架構Redis架構
- Redis Sentinel高可用架構Redis架構
- Oracle高可用架構(MAA)Oracle架構
- MySQL 高可用架構之 MMM 架構MySql架構
- MySQL高可用架構對比MySql架構
- mysql高可用架構MHA搭建MySql架構
- Keepalived 架構高可用 Mysql架構MySql
- mysql MHA 高可用架構部署MySql架構
- Keepalived 高可用詳解
- 高可用架構之高可用的應用和服務架構
- MySQL 中常見的幾種高可用架構部署方案MySql架構
- k8s高可用架構K8S架構
- MQ系列9:高可用架構分析MQ架構
- 深度解析KubeEdge EdgeMesh 高可用架構架構
- 理解HDFS高可用性架構架構
- Redis 高可用架構最佳實踐Redis架構
- Redis系列(四)-低成本高可用方案設計Redis
- 淺談高可用設計
- 微服務高可用方案微服務
- MySQL MHA高可用方案MySql
- 理解redis高可用方案Redis
- MySQL MMM高可用方案MySql
- 京東智聯雲物件儲存高可用架構設計思考物件架構
- Redis哨兵模式高可用解決方案Redis模式
- 超全面Redis分散式高可用方案:哨兵機制Redis分散式
- 用 Hystrix 構建高可用服務架構架構