如何建立高可用性系統

做者:Chris Schwartz前端

翻譯:瘋狂的技術宅web

原文:blog.leaseweb.com/2019/07/08/…前端工程化

未經許可嚴謹轉載緩存

咱們生活在一個超鏈接的世界,但願網站可以在任什麼時候候都100% 的正常運行。咱們不能接受任什麼時候間長度的 Web 停機,由於它可能會形成災難性的連鎖反應。安全

中斷可能會致使損失收入、增長與安全和欺詐相關的風險、中止業務運營以及可怕的數據沒法訪問。在這樣的災難中,對你的品牌和客戶滿意度的損害多是沒法彌補的,你最終會看到寶貴的客戶跑到最接近的競爭對手那裏。讓咱們面對現實吧,沒有人願意經歷這一切!服務器

單點故障是任意基礎設施的崩潰,設計並運行具備高可用性的系統是避免停機的關鍵。網絡

什麼是高可用性(high availability)?

高可用性(HA)是系統的一個特徵,其旨在確保服務達到一致的性能水平,一般是高於正常的運行時間。架構

設計 HA 基礎架構時首先想到的是增長冗餘。冗餘是系統關鍵組件的重複,用來提升可靠性並防止功能喪失。工具

這些是在設計 HA 基礎架構時須要考慮的組件:性能

  • **硬件:高可用性服務器應可以適應電源中斷和硬件故障,包括硬盤和網絡接口。**服務器應至少位於數據中心內的不一樣機架或機房中。
  • 軟件:必須準備整個軟件棧,包括操做系統和應用程序自己,以應對可能須要從新啓動系統的意外故障。
  • **數據:**有不少因素會致使數據丟失和不一致,並不限於硬盤故障。高可用性系統必須在發生故障時考慮數據安全。
  • **網絡:**高可用性系統的另外一個可能的故障點是計劃外的網絡中斷。爲可能的故障制定冗餘網絡策略很是重要。

基本 HA 基礎架構是什麼樣的?

假設咱們有一個域(網站)在一臺服務器上運行,域的 DNS 指向該服務器的 IP 地址。若是此服務器出現故障,則該網站就會處於脫機狀態。在這種狀況下,服務器是單點故障。

咱們如何實施高可用性基礎架構來確保網站保持在線狀態呢?

繼續參考前面給出的例子,咱們能夠在上面的基礎架構中添加一個相同的服務器,最好是在另外一個機架中,將服務器設置爲主從模式,這樣就會在硬件層上有所冗餘。

經過添加這個額外的服務器,咱們擁有了 2 個託管網站的服務器,但這並不意味着當活動服務器關閉時,流量將會自動流向從服務器。這是由於域的 DNS 指向了活動服務器的 IP 地址。必須對 DNS 進行更改才能將域名指向從服務器,這可能須要至關長的時間才能在 Internet 上同步。有一個解決方案,咱們建議使用浮動 IP 。

什麼是浮動IP?

浮動 IP 是可路由的 IP 地址,能夠將流量引到另外一個 IP 地址。你能夠使用浮動 IP 地址,而不是用服務器的 IP 地址做爲域的 A 記錄。浮動 IP 地址可以提供在須要時輕鬆重定向的 IP 地址,這樣能夠消除修改 DNS 的過程當中固有的傳播和緩存問題。下面的圖表顯示了浮動 IP 如何自動適應 HA 系統。

在上面的示例中,有兩個相同的服務器處於主從模式,其中託管了相同的網站。網站的 DNS 指向浮動 IP。浮動 IP 將流量定向到活動服務器。若是活動服務器出現故障,經過對浮動 IP 地址的更改會將流量定向到從服務器的 IP,這可確保使流量流向從服務器。

最後一件重要的事,爲了創建平穩的故障轉移,須要在兩臺服務器上進行數據同步。能夠在兩個服務器之間創建專用網絡來實現數據同步。

歡迎關注前端公衆號:前端先鋒,領取前端工程化實用工具包。

相關文章
相關標籤/搜索