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

詳解redis集群選舉機(jī)制

 更新時(shí)間:2021年03月29日 14:26:42   作者:祈雨v  
這篇文章主要介紹了詳解redis集群選舉機(jī)制,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

概要

當(dāng)redis集群的主節(jié)點(diǎn)故障時(shí),Sentinel集群將從剩余的從節(jié)點(diǎn)中選舉一個(gè)新的主節(jié)點(diǎn),有以下步驟:

  • 故障節(jié)點(diǎn)主觀下線
  • 故障節(jié)點(diǎn)客觀下線
  • Sentinel集群選舉Leader
  • Sentinel Leader決定新主節(jié)點(diǎn)

選舉過程

1、主觀下線

Sentinel集群的每一個(gè)Sentinel節(jié)點(diǎn)會(huì)定時(shí)對(duì)redis集群的所有節(jié)點(diǎn)發(fā)心跳包檢測(cè)節(jié)點(diǎn)是否正常。如果一個(gè)節(jié)點(diǎn)在down-after-milliseconds時(shí)間內(nèi)沒有回復(fù)Sentinel節(jié)點(diǎn)的心跳包,則該redis節(jié)點(diǎn)被該Sentinel節(jié)點(diǎn)主觀下線。

2、客觀下線

當(dāng)節(jié)點(diǎn)被一個(gè)Sentinel節(jié)點(diǎn)記為主觀下線時(shí),并不意味著該節(jié)點(diǎn)肯定故障了,還需要Sentinel集群的其他Sentinel節(jié)點(diǎn)共同判斷為主觀下線才行。

該Sentinel節(jié)點(diǎn)會(huì)詢問其他Sentinel節(jié)點(diǎn),如果Sentinel集群中超過quorum數(shù)量的Sentinel節(jié)點(diǎn)認(rèn)為該redis節(jié)點(diǎn)主觀下線,則該redis客觀下線。

如果客觀下線的redis節(jié)點(diǎn)是從節(jié)點(diǎn)或者是Sentinel節(jié)點(diǎn),則操作到此為止,沒有后續(xù)的操作了;如果客觀下線的redis節(jié)點(diǎn)為主節(jié)點(diǎn),則開始故障轉(zhuǎn)移,從從節(jié)點(diǎn)中選舉一個(gè)節(jié)點(diǎn)升級(jí)為主節(jié)點(diǎn)。

3、Sentinel集群選舉Leader

如果需要從redis集群選舉一個(gè)節(jié)點(diǎn)為主節(jié)點(diǎn),首先需要從Sentinel集群中選舉一個(gè)Sentinel節(jié)點(diǎn)作為L(zhǎng)eader。

每一個(gè)Sentinel節(jié)點(diǎn)都可以成為L(zhǎng)eader,當(dāng)一個(gè)Sentinel節(jié)點(diǎn)確認(rèn)redis集群的主節(jié)點(diǎn)主觀下線后,會(huì)請(qǐng)求其他Sentinel節(jié)點(diǎn)要求將自己選舉為L(zhǎng)eader。被請(qǐng)求的Sentinel節(jié)點(diǎn)如果沒有同意過其他Sentinel節(jié)點(diǎn)的選舉請(qǐng)求,則同意該請(qǐng)求(選舉票數(shù)+1),否則不同意。

如果一個(gè)Sentinel節(jié)點(diǎn)獲得的選舉票數(shù)達(dá)到Leader最低票數(shù)(quorumSentinel節(jié)點(diǎn)數(shù)/2+1的最大值),則該Sentinel節(jié)點(diǎn)選舉為L(zhǎng)eader;否則重新進(jìn)行選舉。

在這里插入圖片描述

4、Sentinel Leader決定新主節(jié)點(diǎn)

當(dāng)Sentinel集群選舉出Sentinel Leader后,由Sentinel Leader從redis從節(jié)點(diǎn)中選擇一個(gè)redis節(jié)點(diǎn)作為主節(jié)點(diǎn):

  • 過濾故障的節(jié)點(diǎn)
  • 選擇優(yōu)先級(jí)slave-priority最大的從節(jié)點(diǎn)作為主節(jié)點(diǎn),如不存在則繼續(xù)
  • 選擇復(fù)制偏移量(數(shù)據(jù)寫入量的字節(jié),記錄寫了多少數(shù)據(jù)。主服務(wù)器會(huì)把偏移量同步給從服務(wù)器,當(dāng)主從的偏移量一致,則數(shù)據(jù)是完全同步)最大的從節(jié)點(diǎn)作為主節(jié)點(diǎn),如不存在則繼續(xù)
  • 選擇runid(redis每次啟動(dòng)的時(shí)候生成隨機(jī)的runid作為redis的標(biāo)識(shí))最小的從節(jié)點(diǎn)作為主節(jié)點(diǎn)

為什么Sentinel集群至少3節(jié)點(diǎn)

一個(gè)Sentinel節(jié)選舉成為L(zhǎng)eader的最低票數(shù)為quorumSentinel節(jié)點(diǎn)數(shù)/2+1的最大值,如果Sentinel集群只有2個(gè)Sentinel節(jié)點(diǎn),則

Sentinel節(jié)點(diǎn)數(shù)/2 + 1
= 2/2 + 1
= 2

即Leader最低票數(shù)至少為2,當(dāng)該Sentinel集群中由一個(gè)Sentinel節(jié)點(diǎn)故障后,僅剩的一個(gè)Sentinel節(jié)點(diǎn)是永遠(yuǎn)無法成為L(zhǎng)eader。

也可以由此公式可以推導(dǎo)出,Sentinel集群允許1個(gè)Sentinel節(jié)點(diǎn)故障則需要3個(gè)節(jié)點(diǎn)的集群;允許2個(gè)節(jié)點(diǎn)故障則需要5個(gè)節(jié)點(diǎn)集群。

到此這篇關(guān)于詳解redis集群選舉機(jī)制的文章就介紹到這了,更多相關(guān)redis集群選舉機(jī)制內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何使用注解方式實(shí)現(xiàn)?Redis?分布式鎖

    如何使用注解方式實(shí)現(xiàn)?Redis?分布式鎖

    這篇文章主要介紹了如何使用注解方式實(shí)現(xiàn)Redis分布式鎖,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,教大家如何優(yōu)雅的使用Redis分布式鎖,感興趣的小伙伴可以參考一下
    2022-07-07
  • Redis連接池監(jiān)控(連接池是否已滿)與優(yōu)化方法

    Redis連接池監(jiān)控(連接池是否已滿)與優(yōu)化方法

    本文詳細(xì)講解了如何在Linux系統(tǒng)中監(jiān)控Redis連接池的使用情況,以及如何通過連接池參數(shù)配置、系統(tǒng)資源使用情況、Redis命令監(jiān)控、外部監(jiān)控工具等多種方法進(jìn)行檢測(cè)和優(yōu)化,以確保系統(tǒng)在高并發(fā)場(chǎng)景下的性能和穩(wěn)定性,討論了連接池的概念、工作原理、參數(shù)配置,以及優(yōu)化策略等內(nèi)容
    2024-09-09
  • Redis如何實(shí)現(xiàn)延遲隊(duì)列

    Redis如何實(shí)現(xiàn)延遲隊(duì)列

    這篇文章主要介紹了Redis如何實(shí)現(xiàn)延遲隊(duì)列問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Redis3.2.6配置文件詳細(xì)中文說明

    Redis3.2.6配置文件詳細(xì)中文說明

    本文為大家分享了Redis3.2.6配置文件詳細(xì)中文說明,非常詳細(xì)收藏起來以后工作有用
    2018-10-10
  • 詳解Redis中的簡(jiǎn)單動(dòng)態(tài)字符串和C字符串的區(qū)別

    詳解Redis中的簡(jiǎn)單動(dòng)態(tài)字符串和C字符串的區(qū)別

    簡(jiǎn)單動(dòng)態(tài)字符串(SDS)和?C?字符串在實(shí)現(xiàn)和特性上存在一些區(qū)別,這些區(qū)別使得?SDS?更適合作為?Redis?中字符串對(duì)象的內(nèi)部表示,本文給大家介紹一下Redis中的簡(jiǎn)單動(dòng)態(tài)字符串和C字符串的區(qū)別,需要的朋友可以參考下
    2023-12-12
  • Redis內(nèi)存回收策略

    Redis內(nèi)存回收策略

    Redis也會(huì)因?yàn)閮?nèi)存不足而產(chǎn)生錯(cuò)誤?,?也可能因?yàn)榛厥者^久而導(dǎo)致系統(tǒng)長(zhǎng)期的停頓,因此掌握?qǐng)?zhí)行回收策略十分有必要,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-11-11
  • 記錄一次并發(fā)情況下的redis導(dǎo)致服務(wù)假死的問題解決

    記錄一次并發(fā)情況下的redis導(dǎo)致服務(wù)假死的問題解決

    由于Redis需要依賴于操作系統(tǒng)環(huán)境,如果系統(tǒng)資源受限,比如過量的進(jìn)程在擠占系統(tǒng)資源、系統(tǒng)死鎖等情況,本文主要介紹了記錄一次并發(fā)情況下的redis導(dǎo)致服務(wù)假死的問題解決,感興趣的可以了解一下
    2023-09-09
  • redis.conf中使用requirepass不生效的原因及解決方法

    redis.conf中使用requirepass不生效的原因及解決方法

    本文主要介紹了如何啟用requirepass,以及啟用requirepass為什么不會(huì)生效,從代碼層面分析了不生效的原因,以及解決方法,需要的朋友可以參考下
    2023-07-07
  • Redis安裝與使用方法小結(jié)

    Redis安裝與使用方法小結(jié)

    這篇文章主要介紹了Redis安裝與使用方法,結(jié)合實(shí)例形式分析了Redis數(shù)據(jù)庫的下載、安裝、啟動(dòng)、設(shè)置及相關(guān)使用操作注意事項(xiàng),需要的朋友可以參考下
    2018-04-04
  • Redis分布式鎖如何自動(dòng)續(xù)期的實(shí)現(xiàn)

    Redis分布式鎖如何自動(dòng)續(xù)期的實(shí)現(xiàn)

    本文主要介紹了Redis分布式鎖如何自動(dòng)續(xù)期的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12

最新評(píng)論