高可用架構設計全面詳解(8大高可用方案)

碼農談IT發表於2024-02-29

來源:mikechen的網際網路架構



1.冗餘

高可用性的冗餘備份,是透過在系統中引入冗餘(Redundancy)來提高系統的可用性。

高可用架構設計全面詳解(8大高可用方案)

冗餘備份的目標是:在硬體或軟體出現故障時,系統仍能夠繼續提供服務,這是最常見的高可用解決方案。

這個方案看似簡單,但是重要性反而是最高的,很多人忘卻了這一點。

比如,資料庫裡面的主備,或者主從等等,這些就是典型的冗餘方案。

如下圖所示:高可用架構設計全面詳解(8大高可用方案)

比如:一臺伺服器出現了問題,很快可以採用備用伺服器替換掉,這就是典型的冗餘。

方案不復雜,但是效果確是最好的,所以,我把冗餘放在了第一位,簡單高效。


2.負載均衡

負載均衡在大型網站,以及分散式架構,中介軟體等都會涉及到,除了能解決效能擴充套件,還有一個非常重要的特性:就是解決高可用性。

在負載均衡器層面實現冗餘,確保即使一個負載均衡器出現故障,其他冗餘的負載均衡器能夠接管服務。

如下圖所示:

高可用架構設計全面詳解(8大高可用方案)

比如:上圖的應用伺服器1壞掉了,還可以使用應用伺服器2、應用伺服器3來替換掉,可以非常容易的解決高可用性的問題。

這個高可用性方案,也是屬於解決容易,但是效果非常好的情況。

所以,我把負載均衡的可用方案,放到了第二位,價效比還是非常高的。


3.資料備份與恢復

資料備份與恢復,是構建高可用性系統中至關重要的組成部分,很多人低估了這項的重要性。

原因很簡單,什麼最重要?當然,是資料最重要。

所以,一定要養成,定期備份資料的習慣。

高可用架構設計全面詳解(8大高可用方案)

備份可以採用以下策略:

  • 完整備份(Full Backup):備份整個資料集。

  • 增量備份(Incremental Backup):備份自上一次備份以來的變化。

  • 組合使用完整備份和增量備份,以在恢復時更加高效。

 

除此之外,還會涉及到恢復:

需要:定期測試備份的恢復過程,確保備份檔案能夠順利還原資料。

制定災難恢復計劃,包括從備份中快速恢復資料的步驟和流程。
決策級別:

以及,確定哪些資料是關鍵的,需要立即進行恢復,哪些資料可以等待。


4.異地多活

異地多活(Geo-Redundancy),是指在不同地理位置建立多個資料中心。

以確保系統在面對單一資料中心故障、自然災害、或網路問題時,仍能夠提供連續的服務。

如下圖所示:

高可用架構設計全面詳解(8大高可用方案)比如:阿里就會涉及到異地多活的情況。

比如,阿里會有多個機房,在杭州、成都、北京...等等都會有機房。

如果杭州機房出現了故障,比如:火災、地震等突發情況,杭州機房就不能正常工作了。

這個時候,可以把上海等機房來頂替,這樣可以更好的保證可用性。

只不過,這個可用性,更多的是從更高的層面,也就是資料中心來保證可用性而已,屬於更高階別的可用保障。

總之,異地多活高可用性是一種強大的架構,可以提供更高階別的可用性和容災能力。

 

5.服務高可用

服務熔斷是一種用於保障系統高可用性的設計模式,主要用於防止由於服務故障、或異常導致的級聯故障。

如下圖所示:

高可用架構設計全面詳解(8大高可用方案)

設定一定的錯誤率、或響應時間閾值,當服務的錯誤率、或響應時間超過設定的閾值時觸發熔斷。

進入熔斷狀態後,拒絕一段時間內的所有請求,減輕服務的負載。

以及,在熔斷狀態下,提供降級策略,返回預設值或預設響應,以確保系統在熔斷時依然能夠提供有限的功能。

這也是屬於高可用的解決方案,只不過是從服務呼叫來保證而已。


6.自動化運維

自動化運維是保障系統高可用性的重要手段之一,透過自動化運維,可以減少人為錯誤,提高系統的穩定性和可靠性。

高可用架構設計全面詳解(8大高可用方案)

比如:

實現自動化的回滾機制,當新版本或配置引發問題時,能夠快速回滾到穩定的版本或配置,減少人工方式,從自動化角度來保證。

以及,配置自動化備份任務,包括:資料備份和系統配置備份,確保資料和配置的安全,同時實現自動化的恢復過程。

這裡的自動化運維,可用結合著上面我提到的冗餘、資料備份、負載等一起結合使用,會極大的提升效率。

 

7.監控和警報系統

當然,監控和警報系統也是確保系統高可用性的重要組成部分。

這類系統負責:實時監測系統的各種指標、效能引數和執行狀態。

如下圖所示:

高可用架構設計全面詳解(8大高可用方案)

監控,比如:CPU利用率、記憶體使用、磁碟空間、網路流量等。

同時在發現異常,或超過閾值時發出警報,以便及時採取措施。

透過建立健全的監控和警報系統,團隊能夠更加及時、準確地發現並解決問題,確保系統的高可用性和穩定性。

所以,大家看到的網際網路大廠,都會有一套非常嚴謹的監控,和報警機制,來保證出現了問題,可更快的解決。

這些都是,非常典型的可用性解決方案。


8.雲服務高可用

如今都是雲的時代了,所以,雲服務的高可用也是很重要。

可用,利用雲服務提供商的高可用性特性,將系統部署在多個區域,並使用雲服務的高階功能。

高可用架構設計全面詳解(8大高可用方案)

使用雲負載均衡、彈性計算、雲資料庫、物件儲存等服務,更好的提高可用性。

以上都是常見的高可用架構解決方案,可以根據具體系統、和業務需求選擇適當的組合,從而更好的提高系統的可用性、穩定性。


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70024924/viewspace-3007649/,如需轉載,請註明出處,否則將追究法律責任。

相關文章