最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Redis哨兵模式的實(shí)現(xiàn)

 更新時(shí)間:2024年02月06日 09:58:53   作者:-代號(hào)9527  
Redis的哨兵模式是一種用于自動(dòng)監(jiān)控Redis實(shí)例狀態(tài)并在主服務(wù)器出現(xiàn)故障時(shí)自動(dòng)切換到從服務(wù)器的機(jī)制,本文主要介紹了Redis哨兵模式的實(shí)現(xiàn),感興趣的可以了解一下

1、哨兵簡(jiǎn)介

master宕機(jī)場(chǎng)景的處理:

在這里插入圖片描述

問題:

怎么確認(rèn)master確實(shí)宕機(jī)了?(中間斷網(wǎng)1s就認(rèn)為人掛了不合適)
怎么找一個(gè)slave來暫替master?
舊的master恢復(fù)以后怎么處理?

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

在這里插入圖片描述

哨兵的三點(diǎn)作用:

  • 監(jiān)控
    不斷的檢查master和slave是否正常運(yùn)行。
  • 通知
    當(dāng)被監(jiān)控的服務(wù)器出現(xiàn)問題時(shí),向其他(哨兵間,客戶端)發(fā)送通知
  • 自動(dòng)故障轉(zhuǎn)移
    斷開master與slave連接,選取一個(gè)slave作為master,將其他slave連接到新的master,并告知客戶端新的服務(wù)器地址

注:

  • 哨兵也是一臺(tái)redis服務(wù)器,只是不提供數(shù)據(jù)服務(wù)
  • 通常哨兵配置數(shù)量為單數(shù),3、5、7……

2、啟用哨兵模式

2.1 哨兵配置

查看哨兵的配置文件,過濾注釋與空行:

在這里插入圖片描述

具體配置參數(shù)整理:

配置項(xiàng)實(shí)例含義
sentinel auth-pass 服務(wù)器名 密碼sentinel auth-pass mymaster 9527連接服務(wù)器時(shí)的驗(yàn)證密碼
sentinel down-after-milliseconds 自定的服務(wù)器名 masterIP Port 票選數(shù)量sentinel monitor mymaster 1.2.3.4 6379 2后面的2,即兩個(gè)哨兵認(rèn)為master掛了就是真的掛了,常為哨兵數(shù)的1/2+1
sentinel down-after-milliseconds 服務(wù)器名 毫秒數(shù)sentinel down-after-milliseconds mymaster 3000哨兵判定master掛掉的時(shí)間周期
sentinel parallel-syncs 服務(wù)器名 服務(wù)器數(shù)sentinel parallel-syncs mymaster 1指定同時(shí)進(jìn)行主從的slave數(shù)量,數(shù)值越大,要求網(wǎng)絡(luò)資源越高,數(shù)值約小,同步時(shí)間約長(zhǎng)
sentinel failover-timeout 服務(wù)器名 毫秒數(shù)sentinel failover-timeout mymaster 9000出現(xiàn)故障后,故障切換的最大超時(shí)時(shí)間3分鐘,超過則認(rèn)定切換失敗
sentinel notification-script 服務(wù)名 腳本路徑服務(wù)器無法正常聯(lián)通時(shí),設(shè)定的執(zhí)行腳本,通常調(diào)試使用

使用sed編輯文件,并重定向。生成三個(gè)哨兵的配置文件(用三個(gè)不同端口模擬三個(gè)哨兵)

在這里插入圖片描述

哨兵啟動(dòng)指令:

redis-sentinel sentinel-端口號(hào).conf先啟動(dòng)master、再slave、最后啟動(dòng)哨兵

2.2 哨兵模擬搭建實(shí)驗(yàn)

以本機(jī)的6379位master、6380、6381為slave,26379、26380、26381為三個(gè)sentinel,模擬實(shí)驗(yàn):

①啟動(dòng)master和slave后,啟動(dòng)26379sentinel:

在這里插入圖片描述

②連接哨兵的客戶端,驗(yàn)證其確實(shí)不能進(jìn)行set等指令:

在這里插入圖片描述

在這里插入圖片描述

③啟動(dòng)哨兵26380

在這里插入圖片描述

注意此時(shí)哨兵26379的配置文件會(huì)相應(yīng)的發(fā)生變化:

在這里插入圖片描述

④模擬master宕機(jī),CTRL+C掉6379的server端

在這里插入圖片描述

⑤6379重新連接服務(wù)端以后,查看哨兵控制臺(tái)日志:取消了6379的s_down標(biāo)記,但并未恢復(fù)其master的身份

在這里插入圖片描述

3、哨兵工作原理

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

  • 監(jiān)控
  • 通知
  • 故障轉(zhuǎn)移

3.1 監(jiān)控階段

在這里插入圖片描述

sentinel會(huì)向master和slave要信息,各個(gè)sentinel之間有專門通路進(jìn)行信息交換,如此便形成了一個(gè)網(wǎng)絡(luò):

在這里插入圖片描述

3.2 通知階段

就像一個(gè)小的朋友圈,sentinel之間互相進(jìn)行信息的傳播,保持信息的對(duì)等:

在這里插入圖片描述

3.3 故障轉(zhuǎn)移階段

哨兵1持續(xù)發(fā)消息給master均無反應(yīng),標(biāo)記master為S_DOWN,也叫主觀下線

在這里插入圖片描述

哨兵1標(biāo)記后,并將這個(gè)消息帶回sentinel的圈子里,告訴其余哨兵,可能master掛了,于是其余哨兵開始發(fā)送消息給master驗(yàn)證消息是否屬實(shí)

在這里插入圖片描述

驗(yàn)證結(jié)果確實(shí)如此,只要半數(shù)以上哨兵認(rèn)為掛了,則標(biāo)記變?yōu)镺_DOWN(這也是哨兵數(shù)量要求奇數(shù)的原因),這時(shí),O_DOWN就是客觀下線了

在這里插入圖片描述

既然確認(rèn)master掛了,那就要去處理,哪個(gè)哨兵去處理呢,每個(gè)哨兵發(fā)送掛的IP、掛的端口、自己曾經(jīng)競(jìng)選的次數(shù)、自己的runID,以便選個(gè)領(lǐng)頭的哨兵

在這里插入圖片描述

最后由競(jìng)選出來的1號(hào)哨兵去處理:

在這里插入圖片描述

 從slave中挑選備選master,首先淘汰掉:

  • 不在線的
  • 響應(yīng)慢的
  • 與原master斷開時(shí)間久的

在這里插入圖片描述

對(duì)于剩下的備選,則考慮優(yōu)先級(jí)、offset、runid等等

在這里插入圖片描述

向新選出的master發(fā)送slaveof no one,斷開原主從連接,并向其他slave發(fā)送slaveof 新masterIP端口

在這里插入圖片描述

至此,故障轉(zhuǎn)移完成!!

到此這篇關(guān)于Redis哨兵模式的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Redis哨兵模式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • redis在Linux系統(tǒng)下的環(huán)境配置和redis的全局命令大全

    redis在Linux系統(tǒng)下的環(huán)境配置和redis的全局命令大全

    在Linux系統(tǒng)中我們經(jīng)常使用Redis作為高性能的緩存數(shù)據(jù)庫(kù),然而有時(shí)候我們需要在系統(tǒng)中多個(gè)地方使用Redis命令,這就需要將Redis的全局命令設(shè)置好,這篇文章主要給大家介紹了關(guān)于redis在Linux系統(tǒng)下的環(huán)境配置和redis的全局命令大全的相關(guān)資料,需要的朋友可以參考下
    2024-05-05
  • Redis的過期鍵刪除策略原理說明

    Redis的過期鍵刪除策略原理說明

    這篇文章主要介紹了Redis的過期鍵刪除策略原理說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Redis中的RDB用法原理及說明

    Redis中的RDB用法原理及說明

    Redis RDB是通過fork子進(jìn)程生成內(nèi)存數(shù)據(jù)快照的持久化機(jī)制,采用寫時(shí)復(fù)制(COW)技術(shù),確保數(shù)據(jù)一致性,優(yōu)點(diǎn):性能高、恢復(fù)快;缺點(diǎn):可能丟失最后一次持久化后的數(shù)據(jù),常用于備份,建議與AOF結(jié)合使用以兼顧安全與效率
    2025-09-09
  • springmvc集成使用redis過程

    springmvc集成使用redis過程

    這篇文章主要介紹了springmvc集成使用redis過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Linux下Redis安裝使用教程

    Linux下Redis安裝使用教程

    這篇文章主要為大家詳細(xì)介紹了Linux下Redis安裝使用教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Redis分布式非公平鎖的使用

    Redis分布式非公平鎖的使用

    分布式鎖很多人都能接觸到,本文主要介紹了Redis分布式非公平鎖,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Redis實(shí)現(xiàn)分布式鎖的示例代碼

    Redis實(shí)現(xiàn)分布式鎖的示例代碼

    日常開發(fā)中,秒殺下單、搶紅包等等業(yè)務(wù)場(chǎng)景,都需要用到分布式鎖,本文主要介紹了Redis實(shí)現(xiàn)分布式鎖的示例代碼,感興趣的可以了解一下
    2023-10-10
  • redis發(fā)布訂閱模式的實(shí)現(xiàn)

    redis發(fā)布訂閱模式的實(shí)現(xiàn)

    本文主要介紹了redis發(fā)布訂閱模式,Redis?的?SUBSCRIBE?命令可以讓客戶端訂閱任意數(shù)量的頻道,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-04-04
  • Redis 內(nèi)存碎片原因及清理

    Redis 內(nèi)存碎片原因及清理

    內(nèi)存碎片是指在內(nèi)存分配的時(shí)候,產(chǎn)生的不能重復(fù)利用的空間,本文主要介紹了Redis 內(nèi)存碎片原因及清理,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • redis中hiredis-API函數(shù)的調(diào)用方法

    redis中hiredis-API函數(shù)的調(diào)用方法

    這篇文章主要介紹了redis中hiredis-API函數(shù)的調(diào)用,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-09-09

最新評(píng)論

朔州市| 饶平县| 钦州市| 随州市| 略阳县| 宜丰县| 乌什县| 车致| 浦县| 应用必备| 宁国市| 石门县| 寻乌县| 张家港市| 南漳县| 北流市| 彩票| 西平县| 延安市| SHOW| 靖宇县| 秦安县| 阳谷县| 施秉县| 遵义市| 津南区| 自治县| 华池县| 深水埗区| 肥西县| 凌海市| 蒙阴县| 永丰县| 格尔木市| 丁青县| 武陟县| 南召县| 砚山县| 彭水| 莱西市| 荥阳市|