實現高可用的主備、主從、主主模式
高可用性H.A.(High Availability)指的是通過儘量縮短因日常維護操作(計劃)和突發的系統崩潰(非計劃)所導致的停機時間,以提高系統和應用的可用性。HA系統是企業防止核心計算機系統因故障停機的最有效手段。
高可用性在日常的工作中接觸到的比較多,比如資料庫的高可用、儲存的高可用等等。
下面對實現高可用性的主主、主從、主備模式進行簡單的介紹。
一、主備、主從、主主
1、主備
1)簡介
主:主機,備:備機。
主機的意思當然是以它為主了,讀寫都是主機上,而備機呢就是備用,默默的在背後吸收主機的資料,時刻待命著等待主機掛了之後取而代之(沒這麼壞哈哈)。因此在主機還活著的情況下,備機的唯一使命就是同步主機的資料,不對外提供服務。
2)優點:簡單,主備之間只有資料同步,不需要考慮別的情況。
3)缺點:備機等於就拿來備份,備機一直處於備用狀態形成資源浪費。
4)主備切換方式:主要的實現方式為引入一些中介軟體比如 Zookeeper、keepalived等等
2、主從
1)簡介
主:主機,從:從機
從機和備機的區別在於它得除了同步資料之外還得幹活,對外提供讀的操作,主機掛掉從機翻身做主。
2)優點:充分利用了資源,從機提供可讀操作。
3)缺點:
①客戶端需要多個判斷,也就是不同操作需要發放給不同伺服器,我上圖主機提供讀寫,有時候讀寫分離了,主機就提供寫。
②主從延遲,讀操作分配給從庫,就會存在資料同步的延遲問題,比如某個人註冊了賬號之後,登入走的是從機,這時候資料還未從主機同步過來,那可不讓人很難受了。有關主從延遲問題的一些解決辦法
3、主主
1)簡介
主主就是兩臺都是主機,同時對外提供讀寫操作
2)優點:主主的好處就是可以把寫操作也分擔一下,但是問題恰恰就出在寫操作上,導致主主的架構有很大的侷限性。
3)缺點:例如主機A有個註冊的插入操作,生成的id是50,同一時刻主機B也有個插入操作生成的id也是50。資料重複、覆蓋情況
因此主主只適用於可以雙向複製,覆蓋的資料(例如使用者登入生成的token)。但是我們平日裡絕大部分的資料都不允許。