新聞中心
Redis的哨兵模式(Sentinel)是Redis高可用解決方案中的一種,它主要用于實(shí)現(xiàn)主從節(jié)點(diǎn)的自動(dòng)故障轉(zhuǎn)移、監(jiān)控以及通知,在分布式系統(tǒng)中,為了保證數(shù)據(jù)的高可用性和系統(tǒng)的穩(wěn)定運(yùn)行,通常會(huì)采用主從復(fù)制的方式來對(duì)數(shù)據(jù)進(jìn)行備份,并在某個(gè)節(jié)點(diǎn)發(fā)生故障時(shí)能夠自動(dòng)進(jìn)行故障轉(zhuǎn)移,哨兵模式就是用來實(shí)現(xiàn)這一目標(biāo)的。

站在用戶的角度思考問題,與客戶深入溝通,找到堆龍德慶網(wǎng)站設(shè)計(jì)與堆龍德慶網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋堆龍德慶地區(qū)。
基本原理
哨兵模式通過啟動(dòng)一個(gè)或多個(gè)哨兵進(jìn)程來監(jiān)控Redis主從節(jié)點(diǎn)的運(yùn)行狀況,每個(gè)哨兵都是獨(dú)立運(yùn)行的,它們之間通過API進(jìn)行通信,共同完成對(duì)整個(gè)Redis集群的監(jiān)控工作。
主要功能
1、監(jiān)控:哨兵會(huì)定期檢查所有的Redis服務(wù)器是否正常運(yùn)行。
2、通知:當(dāng)某個(gè)Redis服務(wù)器出現(xiàn)問題時(shí),哨兵可以通過API向管理員發(fā)送通知。
3、自動(dòng)故障轉(zhuǎn)移:如果主節(jié)點(diǎn)無法正常工作,哨兵可以自動(dòng)選舉出一個(gè)從節(jié)點(diǎn)晉升為新的主節(jié)點(diǎn),并重新配置其他從節(jié)點(diǎn)來復(fù)制新主節(jié)點(diǎn)的數(shù)據(jù)。
4、配置提供者:客戶端在連接Redis時(shí)可以詢問哨兵獲取當(dāng)前可用的主節(jié)點(diǎn)地址。
工作流程
1、監(jiān)控:哨兵定期檢查主節(jié)點(diǎn)和從節(jié)點(diǎn)是否可達(dá),以及是否在正常工作時(shí)間內(nèi)。
2、判斷故障:如果一個(gè)主節(jié)點(diǎn)無法響應(yīng)哨兵的PING命令或者超過了指定的失敗次數(shù),哨兵會(huì)將其標(biāo)記為主觀下線,如果多個(gè)哨兵都將該節(jié)點(diǎn)標(biāo)記為主觀下線,那么該節(jié)點(diǎn)會(huì)被標(biāo)記為客觀下線。
3、故障轉(zhuǎn)移:當(dāng)主節(jié)點(diǎn)被標(biāo)記為客觀下線時(shí),哨兵之間會(huì)進(jìn)行協(xié)商,選擇一個(gè)從節(jié)點(diǎn)來晉升為新的主節(jié)點(diǎn),并進(jìn)行投票,當(dāng)票數(shù)達(dá)到哨兵配置文件中所指定的數(shù)量時(shí),該從節(jié)點(diǎn)就會(huì)被提升為主節(jié)點(diǎn)。
4、重新配置:新的主節(jié)點(diǎn)確定后,哨兵會(huì)向剩余的從節(jié)點(diǎn)發(fā)送命令,讓它們開始復(fù)制新主節(jié)點(diǎn)的數(shù)據(jù),哨兵會(huì)更新其內(nèi)部的記錄,以便客戶端查詢。
5、恢復(fù)與重啟:原來的主節(jié)點(diǎn)恢復(fù)后,它會(huì)成為從節(jié)點(diǎn),并開始復(fù)制新的主節(jié)點(diǎn)的數(shù)據(jù)。
配置哨兵
要配置哨兵模式,需要?jiǎng)?chuàng)建一個(gè)配置文件,通常命名為sentinel.conf,在這個(gè)文件中,至少需要指定以下幾個(gè)關(guān)鍵參數(shù):
sentinel monitor :定義要監(jiān)控的主節(jié)點(diǎn)信息,包括名稱、IP地址、端口號(hào)以及選舉所需的票數(shù)(quorum)。
sentinel down-after-milliseconds :指定判斷主節(jié)點(diǎn)下線前的最大毫秒數(shù)。
sentinel failover-timeout :指定故障轉(zhuǎn)移過程中允許的最長(zhǎng)時(shí)間。
sentinel parallel-syncs :指定在執(zhí)行故障轉(zhuǎn)移時(shí),最多可以有多少個(gè)從節(jié)點(diǎn)同時(shí)復(fù)制新晉主節(jié)點(diǎn)。
相關(guān)問題與解答
Q1: 什么是哨兵的主觀下線和客觀下線?
A1: 主觀下線是指單個(gè)哨兵自己判斷主節(jié)點(diǎn)不可用,而客觀下線是指多個(gè)哨兵達(dá)成共識(shí),認(rèn)為主節(jié)點(diǎn)確實(shí)不可用。
Q2: 哨兵模式下如何進(jìn)行讀寫分離?
A2: 通常情況下,所有的寫操作都指向主節(jié)點(diǎn),而讀操作可以在主節(jié)點(diǎn)和從節(jié)點(diǎn)之間進(jìn)行分配,在哨兵模式下,客戶端可以從哨兵獲取當(dāng)前的主節(jié)點(diǎn)地址,然后將讀操作定向到主節(jié)點(diǎn)或其他從節(jié)點(diǎn)。
Q3: 如果在故障轉(zhuǎn)移過程中,原來的主節(jié)點(diǎn)恢復(fù)了怎么辦?
A3: 如果原主節(jié)點(diǎn)恢復(fù),它會(huì)變成從節(jié)點(diǎn),并開始復(fù)制新晉主節(jié)點(diǎn)的數(shù)據(jù),系統(tǒng)會(huì)自動(dòng)處理這種角色的轉(zhuǎn)變。
Q4: 哨兵模式能否保證數(shù)據(jù)一致性?
A4: 哨兵模式確保了故障轉(zhuǎn)移過程中的數(shù)據(jù)一致性,因?yàn)樵谛碌闹鞴?jié)點(diǎn)被選舉出來之前,所有的寫操作都會(huì)被阻塞,而且,只有在新的主節(jié)點(diǎn)被成功選舉并且達(dá)到配置的sentinel parallel-syncs數(shù)量的從節(jié)點(diǎn)同步完成后,才會(huì)對(duì)外提供服務(wù)。
網(wǎng)站題目:redis的哨兵模式指的是什么意思
文章出自:http://fisionsoft.com.cn/article/dhgedsi.html


咨詢
建站咨詢
