1. 程式人生 > 其它 >07 | 哨兵機制:主庫掛了,如何不間斷服務?

07 | 哨兵機制:主庫掛了,如何不間斷服務?

上節課,我們學習了主從庫叢集模式。在這個模式下,如果從庫發生故障了,客戶端可以 繼續向主庫或其他從庫傳送請求,進行相關的操作,但是如果主庫發生故障了,那就直接 會影響到從庫的同步,因為從庫沒有相應的主庫可以進行資料複製操作了。 而且,如果客戶端傳送的都是讀操作請求,那還可以由從庫繼續提供服務,這在純讀的業 務場景下還能被接受。但是,一旦有寫操作請求了,按照主從庫模式下的讀寫分離要求, 需要由主庫來完成寫操作。此時,也沒有例項可以來服務客戶端的寫操作請求了,如下圖 所示:

 

 

無論是寫服務中斷,還是從庫無法進行資料同步,都是不能接受的。所以,如果主庫掛 了,我們就需要執行一個新主庫,比如說把一個從庫切換為主庫,把它當成主庫。這就涉
及到三個問題: 1. 主庫真的掛了嗎? 2. 該選擇哪個從庫作為主庫? 3. 怎麼把新主庫的相關資訊通知給從庫和客戶端呢?