内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Redis哨兵模式是什么

這篇文章主要講解了“redis哨兵模式是什么”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Redis哨兵模式是什么”吧!

創(chuàng)新新互聯(lián),憑借十余年的成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站經(jīng)驗(yàn),本著真心·誠(chéng)心服務(wù)的企業(yè)理念服務(wù)于成都中小企業(yè)設(shè)計(jì)網(wǎng)站有上1000+案例。做網(wǎng)站建設(shè),選創(chuàng)新互聯(lián)建站

Redis哨兵模式是什么

哨兵模式

1. 哨兵概念

  • 在一主多從結(jié)構(gòu)中,如果master宕機(jī)了,就需要從多個(gè)slave中選出一個(gè)作為新的master,要想完成這樣的功能,就需要使用Redis的哨兵機(jī)制

  • 哨兵 (sentinel) 是一個(gè)分布式系統(tǒng),用于對(duì)主從結(jié)構(gòu)中的每臺(tái)服務(wù)器進(jìn)行監(jiān)控,當(dāng)出現(xiàn)故障時(shí)通過(guò)投票機(jī)制選擇新的master并將所有slave連接到新的master,如下圖所示:

    Redis哨兵模式是什么

2. 哨兵作用

  • 監(jiān)控:監(jiān)控master和slave

    • 不斷的檢查master和slave是否正常運(yùn)行

    • master存活檢測(cè)、master與slave運(yùn)行情況檢測(cè)

  • 通知(提醒):當(dāng)被監(jiān)控的服務(wù)器出現(xiàn)問(wèn)題時(shí),向其他哨兵、Redis服務(wù)器發(fā)送通知

  • 故障轉(zhuǎn)移:斷開(kāi)宕機(jī)的master與slave的連接,選取一個(gè)slave作為master,將其他slave連接新的master,并告知客戶端新的服務(wù)器地址

注意:哨兵也是一臺(tái)redis服務(wù)器,僅提供監(jiān)控服務(wù),不提供數(shù)據(jù)管理服務(wù);通常哨兵的數(shù)量配置為單數(shù)(方便投票)

3. 啟用哨兵

  • 修改哨兵的配置文件 sentinel.conf ,配置文件位于Redis目錄下,如下圖所示:

    Redis哨兵模式是什么Redis哨兵模式是什么

  • 部分配置的含義如下圖所示:

    Redis哨兵模式是什么

  • 啟動(dòng)哨兵

    redis-sentinel filename 
    #filename指的是配置文件名
    #每個(gè)哨兵都要配置自己的配置文件
  • 配置并啟動(dòng)哨兵之后,主服務(wù)器宕機(jī)之后,會(huì)自動(dòng)的執(zhí)行投票、主從切換等過(guò)程

4. 哨兵原理

哨兵在進(jìn)行主從切換過(guò)程中經(jīng)歷三個(gè)階段:

  • 監(jiān)控

  • 通知

  • 故障轉(zhuǎn)移

4.1 監(jiān)控

用于同步各個(gè)節(jié)點(diǎn)的狀態(tài)信息,這些節(jié)點(diǎn)包括master、slave、哨兵,也就是整個(gè)系統(tǒng)所有服務(wù)器的信息。

主要完成的功能:

Redis哨兵模式是什么

  • 獲取各個(gè)sentinel的狀態(tài)(是否在線):新添加的哨兵要與系統(tǒng)中已經(jīng)存在的哨兵進(jìn)行信息的交互

  • 獲取master的狀態(tài)(通過(guò)info指令)

    • 獲取的內(nèi)容如下

      1. master屬性
      	 runid
      	 role:master
      2. 各個(gè)slave在master中保存的基本信息
  • 獲取所有slave的狀態(tài)(根據(jù)master中slave的信息向所有的slave發(fā)送info指令)

    • 獲取的內(nèi)容如下

      slave屬性
      	runid
      	role:slave
      	master_host、master_port
      	offset

具體的內(nèi)部工作原理如下所述:

Redis哨兵模式是什么

  • 哨兵1向master發(fā)送info指令之后,會(huì)建立一個(gè)cmd連接,創(chuàng)建的連接是用來(lái)發(fā)送命令的

  • 創(chuàng)建好cmd連接之后,會(huì)在哨兵1這一端保存目前他所獲得的所有信息,另一端master也會(huì)保存自己持有的信息

  • 然后哨兵1根據(jù)從master獲取的關(guān)于salve的信息,向slave發(fā)送info指令,得到salve的信息,豐富這一端所保存的信息

  • 當(dāng)新增一個(gè)新的哨兵2時(shí),哨兵2向master發(fā)送info指令,建立cmd連接,根據(jù)master中的信息可以得到之前已經(jīng)存在的哨兵1,在自己這一端保存已經(jīng)獲得的信息。然后判斷哨兵1是否在線,與哨兵1建立連接,二者互相交換各自的信息,并且雙方會(huì)持續(xù)的ping,保證他們之間是暢通的

  • 哨兵2根據(jù)從master獲得的slave信息,再?gòu)膕lave獲取信息,豐富自己所保存的信息

  • 再新增一個(gè)哨兵3時(shí),與之前的過(guò)程類似,最終三個(gè)哨兵建立起了關(guān)系網(wǎng)

  • 關(guān)系網(wǎng)中三者會(huì)互相交換、發(fā)送信息,關(guān)系網(wǎng)中的這種工作模式稱為發(fā)布訂閱模式

4.2 通知

哨兵在通知階段要不斷的去獲取master與slave的信息,然后將獲得的信息在各個(gè)哨兵之間進(jìn)行共享。

具體的流程如下:

哨兵通過(guò)建立的cmd連接,向master、slave發(fā)送 hello 指令,得到他們的信息,然后在關(guān)系網(wǎng)中共享:

Redis哨兵模式是什么

4.3 故障轉(zhuǎn)移

斷開(kāi)宕機(jī)的master與slave的連接,選取一個(gè)slave作為master,將其他slave連接新的master,并告知客戶端新的服務(wù)器地址。

具體的流程如下所述:

  • 哨兵1始終得不到master的回應(yīng),主觀判斷master宕機(jī),標(biāo)記 sdown(僅有一個(gè)哨兵認(rèn)為master宕機(jī))

  • 哨兵1在關(guān)系網(wǎng)中傳遞消息,向其他哨兵發(fā)送圖中左上角的消息

  • 其他哨兵得到消息之后,全部向master發(fā)送消息,確定master是否宕機(jī),他們也會(huì)將自己得到的結(jié)果發(fā)送給關(guān)系網(wǎng)中的其他哨兵,確定master宕機(jī)后,將標(biāo)記改為 odown(所有哨兵探測(cè)之后,超過(guò)一半的哨兵認(rèn)為master宕機(jī))

    Redis哨兵模式是什么

  • 當(dāng)認(rèn)定master宕機(jī)之后,此時(shí)需要選舉新的master,由哪個(gè)哨兵完成這件事要通過(guò)哨兵之間的選舉決定,具體過(guò)程如下所述:

    • 在選舉的時(shí)候每個(gè)哨兵手里都有一票,每個(gè)哨兵都會(huì)發(fā)出一個(gè)指令,在內(nèi)網(wǎng)里邊告訴其他哨兵自己當(dāng)選舉人,比如說(shuō)sentinel1和sentinel2發(fā)出這個(gè)選舉指令,那么sentinel3接收到他們的申請(qǐng)之后,sentinel3就會(huì)把自己的一票投給其中一方,根據(jù)到達(dá)的先后順序投票,獲得票的那一方就會(huì)多一張選舉票,按照這樣的一種形式,最終會(huì)有一個(gè)選舉結(jié)果,獲得票數(shù)最多的哨兵會(huì)被獲選

    • 在這個(gè)過(guò)程中有可能會(huì)存在失敗的現(xiàn)象,比如第一輪沒(méi)有選舉成功,那就會(huì)接著進(jìn)行第二輪第三輪直到完成選舉

  • 當(dāng)完成哨兵之間的選舉之后,接下來(lái)就要由選舉勝出的哨兵去slave中挑選一個(gè),將其變成新的master,具體的流程如下所述:

    • 不在線的OUT

    • 響應(yīng)慢的OUT

    • 與原master斷開(kāi)時(shí)間久的OUT

    • 排除結(jié)束,開(kāi)始進(jìn)行選擇

    • 優(yōu)先級(jí)高的獲選

    • offset較大的獲選(比較大說(shuō)明同步原來(lái)master的數(shù)據(jù)最多)

    • 若還沒(méi)有選出,則最后根據(jù)runid選出

    • 哨兵在服務(wù)器列表中挑選備選master的原則:先排除,后選擇

  • 選出新的master之后,哨兵發(fā)送指令給服務(wù)器:

    • 向新的master發(fā)送 slaveof no one 指令

    • 向其他slave發(fā)送 slaveof 新masterIP端口 指令

  • 同時(shí)還要告訴其他的哨兵新master是誰(shuí)

感謝各位的閱讀,以上就是“Redis哨兵模式是什么”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Redis哨兵模式是什么這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

新聞名稱:Redis哨兵模式是什么
URL網(wǎng)址:http://m.rwnh.cn/article16/igghdg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、App開(kāi)發(fā)網(wǎng)站排名、Google、做網(wǎng)站、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
乐都县| 繁峙县| 德清县| 滦南县| 务川| 常德市| 定南县| 三明市| 神农架林区| 偏关县| 平舆县| 大悟县| 灵山县| 同心县| 临清市| 景洪市| 赫章县| 广昌县| 泾川县| 临洮县| 龙江县| 苏尼特左旗| 黎川县| 丽水市| 吴川市| 抚远县| 曲靖市| 洮南市| 泗水县| 巨鹿县| 清新县| 昌平区| 驻马店市| 如东县| 防城港市| 桦川县| 三门峡市| 旌德县| 读书| 正阳县| 禄丰县|