欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

1、哨兵簡介

master宕機場景的處理:

在這里插入圖片描述

問題:

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

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

在這里插入圖片描述

哨兵的三點作用:

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

注:

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

2、啟用哨兵模式

2.1 哨兵配置

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

在這里插入圖片描述

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

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

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

在這里插入圖片描述

哨兵啟動指令:

redis-sentinel sentinel-端口號.conf先啟動master、再slave、最后啟動哨兵

2.2 哨兵模擬搭建實驗

以本機的6379位master、6380、6381為slave,26379、26380、26381為三個sentinel,模擬實驗:

①啟動master和slave后,啟動26379sentinel:

在這里插入圖片描述

②連接哨兵的客戶端,驗證其確實不能進行set等指令:

在這里插入圖片描述

在這里插入圖片描述

③啟動哨兵26380

在這里插入圖片描述

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

在這里插入圖片描述

④模擬master宕機,CTRL+C掉6379的server端

在這里插入圖片描述

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

在這里插入圖片描述

3、哨兵工作原理

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

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

3.1 監(jiān)控階段

在這里插入圖片描述

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

在這里插入圖片描述

3.2 通知階段

就像一個小的朋友圈,sentinel之間互相進行信息的傳播,保持信息的對等:

在這里插入圖片描述

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

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

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

最后由競選出來的1號哨兵去處理:

在這里插入圖片描述

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

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

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

至此,故障轉(zhuǎn)移完成?。?/p>

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

相關(guān)文章

  • Redis如何實現(xiàn)投票功能

    Redis如何實現(xiàn)投票功能

    這篇文章主要介紹了Redis如何實現(xiàn)投票功能,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Redis數(shù)據(jù)結(jié)構(gòu)原理淺析

    Redis數(shù)據(jù)結(jié)構(gòu)原理淺析

    這篇文章主要為大家介紹了Redis數(shù)據(jù)結(jié)構(gòu)原理淺析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Redis實現(xiàn)排名功能的示例代碼

    Redis實現(xiàn)排名功能的示例代碼

    本文主要介紹了Redis實現(xiàn)排名功能的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 如何在centos中安裝redis插件bloom-filter

    如何在centos中安裝redis插件bloom-filter

    布隆過濾器在第一次add的時候自動創(chuàng)建基于默認參數(shù)的過濾器,Redis還提供了自定義參數(shù)的布隆過濾器,下面這篇文章主要給大家介紹了關(guān)于如何在centos中安裝redis插件bloom-filter的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • Redis的11種Web應(yīng)用場景簡介

    Redis的11種Web應(yīng)用場景簡介

    一些Redis原語命令比如LPUSH、LTRIM和 LREM等等能夠用來幫助開發(fā)者完成需要的任務(wù)——這些任務(wù)在傳統(tǒng)的數(shù)據(jù)庫存儲中非常困難或緩慢。這是一篇非常有用并且實際的文章。那么要如何在你的框架中完成這些任務(wù)呢?
    2015-09-09
  • Redis緩存雪崩的物種解決方案

    Redis緩存雪崩的物種解決方案

    在高并發(fā)系統(tǒng)中,Redis作為核心緩存組件,通常扮演著重要的"守門員"角色,當大量緩存同時失效時,會導(dǎo)致請求如洪水般直接涌向數(shù)據(jù)庫,造成數(shù)據(jù)庫瞬間壓力劇增甚至宕機,這種現(xiàn)象被形象地稱為"緩存雪崩",本文給大家介紹了Redis緩存雪崩的5種應(yīng)對措施,需要的朋友可以參考下
    2025-04-04
  • Redis實現(xiàn)唯一計數(shù)的3種方法分享

    Redis實現(xiàn)唯一計數(shù)的3種方法分享

    這篇文章主要介紹了Redis實現(xiàn)唯一計數(shù)的3種方法分享,本文講解了基于SET、基于 bit、基于 HyperLogLog三種方法,需要的朋友可以參考下
    2015-03-03
  • redis 限制內(nèi)存使用大小的實現(xiàn)

    redis 限制內(nèi)存使用大小的實現(xiàn)

    這篇文章主要介紹了redis 限制內(nèi)存使用大小的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2021-05-05
  • Redis安裝及基本數(shù)據(jù)類型

    Redis安裝及基本數(shù)據(jù)類型

    這篇文章主要介紹了Redis安裝及基本數(shù)據(jù)類型,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • odoo中使用redis實現(xiàn)緩存的步驟

    odoo中使用redis實現(xiàn)緩存的步驟

    這篇文章主要介紹了odoo中使用redis實現(xiàn)緩存的步驟,本文給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04

最新評論