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

Redis Sentinel服務(wù)配置流程(詳解)

 更新時間:2017年03月25日 10:31:59   投稿:jingxian  
下面小編就為大家?guī)硪黄猂edis Sentinel服務(wù)配置流程(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

1、Redis Sentinel服務(wù)配置

1.1簡介

Redis 的 Sentinel 系統(tǒng)用于管理多個 Redis 服務(wù)器(instance), 該系統(tǒng)執(zhí)行以下三個任務(wù):

監(jiān)控(Monitoring): Sentinel 會不斷地檢查你的主服務(wù)器和從服務(wù)器是否運(yùn)作正常。

提醒(Notification): 當(dāng)被監(jiān)控的某個 Redis 服務(wù)器出現(xiàn)問題時, Sentinel 可以通過API 向管理員或者其他應(yīng)用程序發(fā)送通知。

自動故障遷移(Automatic failover): 當(dāng)一個主服務(wù)器不能正常工作時, Sentinel 會開始一次自動故障遷移操作, 它會將失效主服務(wù)器的其中一個從服務(wù)器升級為新的主服務(wù)器, 并讓失效主服務(wù)器的其他從服務(wù)器改為復(fù)制新的主服務(wù)器; 當(dāng)客戶端試圖連接失效的主服務(wù)器時, 集群也會向客戶端返回新主服務(wù)器的地址, 使得集群可以使用新主服務(wù)器代替失效服務(wù)器。

Redis Sentinel 是一個分布式系統(tǒng), 你可以在一個架構(gòu)中運(yùn)行多個 Sentinel 進(jìn)程(progress), 這些進(jìn)程使用流言協(xié)議(gossip protocols)來接收關(guān)于主服務(wù)器是否下線的信息, 并使用投票協(xié)議(agreement protocols)來決定是否執(zhí)行自動故障遷移,以及選擇哪個從服務(wù)器作為新的主服務(wù)器。

雖然 Redis Sentinel 釋出為一個單獨(dú)的可執(zhí)行文件 redis-sentinel , 但實(shí)際上它只是一個運(yùn)行在特殊模式下的 Redis 服務(wù)器, 你可以在啟動一個普通 Redis 服務(wù)器時通過給定 --sentinel 選項(xiàng)來啟動Redis Sentinel 。

1.2相關(guān)配置

案例:

如果要監(jiān)控兩個redis實(shí)例,可以進(jìn)行如下配置Redis安裝目錄下sentinel.conf文件:

常規(guī)配置:

port 26379

daemonize yes

logfile "/var/log/redis/sentinel.log"

 

#master 7000

sentinel monitor master1 127.0.0.1 7000 2                #配置master名、ip、port、需要多少個sentinel才能判斷[客觀下線](2)

sentinel down-after-milliseconds master-7000 30000      #配置sentinel向master發(fā)出ping,最大響應(yīng)時間、超過則認(rèn)為主觀下線

sentinel parallel-syncs master-7000 1                   #配置在進(jìn)行故障轉(zhuǎn)移時,運(yùn)行多少個slave進(jìn)行數(shù)據(jù)備份同步(越少速度越快)

sentinel failover-timeout master-7000 180000            #配置當(dāng)出現(xiàn)failover時下一個sentinel與上一個sentinel對[同一個master監(jiān)測的時間間隔](最后設(shè)置為客觀下線)
 

#master 7001

sentinel monitor master2 127.0.0.1 7001 1

sentinel down-after-milliseconds master-7001 30000

sentinel parallel-syncs master-7001 1

sentinel failover-timeout master-7001 180000

特殊配置:

min-slaves-to-write 1

min-slaves-max-lag 10

通過上面的配置,當(dāng)一個redis是master時,如果它不能向至少一個slave寫數(shù)據(jù)(上面的min-slaves-to-write指定了slave的數(shù)量),它將會拒絕接受客戶端的寫請求。由于復(fù)制是異步的,master無法向slave寫數(shù)據(jù)意味著slave要么斷開連接了,要么不在指定時間內(nèi)向master發(fā)送同步數(shù)據(jù)的請求了(上面的min-slaves-max-lag指定了這個時間)。

1.3 相關(guān)術(shù)語說明

Sentinel包括兩個重要的術(shù)語:<主觀下線和客觀下線>

1. 主觀下線(Subjectively Down, 簡稱 SDOWN)指的是單個 Sentinel 實(shí)例對服務(wù)器做出的下線判斷。

2. 客觀下線(Objectively Down, 簡稱 ODOWN)指的是多個 Sentinel 實(shí)例在對同一個服務(wù)器做出 SDOWN 判斷, 并且通過SENTINEL is-master-down-by-addr 命令互相交流之后, 得出的服務(wù)器下線判斷。

客觀下線條件只適用于主服務(wù)器: 對于任何其他類型的 Redis 實(shí)例, Sentinel 在將它們判斷為下線前不需要進(jìn)行協(xié)商, 所以從服務(wù)器或者其他 Sentinel 永遠(yuǎn)不會達(dá)到客觀下線條件。

只要一個 Sentinel 發(fā)現(xiàn)某個主服務(wù)器進(jìn)入了客觀下線狀態(tài), 這個Sentinel 就可能會被其他 Sentinel 推選出, 并對失效的主服務(wù)器執(zhí)行自動故障遷移操作。

每個Sentinel實(shí)例都執(zhí)行的定時任務(wù)

1. 每個Sentinel 以每秒鐘一次的頻率向它所知的主服務(wù)器、從服務(wù)器以及其他 Sentinel 實(shí)例發(fā)送一個 PING 命令。

2. 如果一個實(shí)例(instance)距離最后一次有效回復(fù) PING 命令的時間超過 down-after-milliseconds 選項(xiàng)所指定的值, 那么這個實(shí)例會被 Sentinel 標(biāo)記為主觀下線。 一個有效回復(fù)可以是: +PONG 、 -LOADING 或者-MASTERDOWN 。

3. 如果一個主服務(wù)器被標(biāo)記為主觀下線, 那么正在監(jiān)視這個主服務(wù)器的所有 Sentinel 要以每秒一次的頻率確認(rèn)主服務(wù)器的確進(jìn)入了主觀下線狀態(tài)。

4. 如果一個主服務(wù)器被標(biāo)記為主觀下線, 并且有足夠數(shù)量的 Sentinel (至少要達(dá)到配置文件指定的數(shù)量)在指定的時間范圍內(nèi)同意這一判斷, 那么這個主服務(wù)器被標(biāo)記為客觀下線。

5. 在一般情況下, 每個 Sentinel 會以每10 秒一次的頻率向它已知的所有主服務(wù)器和從服務(wù)器發(fā)送 INFO 命令。 當(dāng)一個主服務(wù)器被 Sentinel 標(biāo)記為客觀下線時, Sentinel 向下線主服務(wù)器的所有從服務(wù)器發(fā)送 INFO 命令的頻率會從 10 秒一次改為每秒一次。

6. 當(dāng)沒有足夠數(shù)量的 Sentinel 同意主服務(wù)器已經(jīng)下線, 主服務(wù)器的客觀下線狀態(tài)就會被移除。 當(dāng)主服務(wù)器重新向 Sentinel 的 PING 命令返回有效回復(fù)時, 主服務(wù)器的主管下線狀態(tài)就會被移除。

1.4服務(wù)日志說明

Sentinel服務(wù)啟動后會打印一些相關(guān)日志信息,以下是相關(guān)日志特殊字符說明:

+reset-master <instance details> :主服務(wù)器已被重置。

+slave <instance details> :一個新的從服務(wù)器已經(jīng)被 Sentinel 識別并關(guān)聯(lián)。

+failover-state-reconf-slaves <instancedetails> :故障轉(zhuǎn)移狀態(tài)切換到了reconf-slaves 狀態(tài)。

+failover-detected <instance details>:另一個 Sentinel 開始了一次故障轉(zhuǎn)移操作,或者一個從服務(wù)器轉(zhuǎn)換成了主服務(wù)器。

+slave-reconf-sent <instance details>:領(lǐng)頭(leader)的 Sentinel 向?qū)嵗l(fā)送了 SLAVEOF 命令,為實(shí)例設(shè)置新的主服務(wù)器。

+slave-reconf-inprog <instancedetails> :實(shí)例正在將自己設(shè)置為指定主服務(wù)器的從服務(wù)器,但相應(yīng)的同步過程仍未完成。

+slave-reconf-done <instance details>:從服務(wù)器已經(jīng)成功完成對新主服務(wù)器的同步。

-dup-sentinel <instance details> :對給定主服務(wù)器進(jìn)行監(jiān)視的一個或多個 Sentinel 已經(jīng)因?yàn)橹貜?fù)出現(xiàn)而被移除 —— 當(dāng) Sentinel 實(shí)例重啟的時候,就會出現(xiàn)這種情況。

+sentinel <instance details> :一個監(jiān)視給定主服務(wù)器的新 Sentinel 已經(jīng)被識別并添加。

+sdown <instance details> :給定的實(shí)例現(xiàn)在處于主觀下線狀態(tài)。

-sdown <instance details> :給定的實(shí)例已經(jīng)不再處于主觀下線狀態(tài)。

+odown <instance details> :給定的實(shí)例現(xiàn)在處于客觀下線狀態(tài)。

-odown <instance details> :給定的實(shí)例已經(jīng)不再處于客觀下線狀態(tài)。

+new-epoch <instance details> :當(dāng)前的紀(jì)元(epoch)已經(jīng)被更新。

+try-failover <instance details> :一個新的故障遷移操作正在執(zhí)行中,等待被大多數(shù) Sentinel 選中(waiting to be elected by themajority)。

+elected-leader <instance details> :贏得指定紀(jì)元的選舉,可以進(jìn)行故障遷移操作了。

+failover-state-select-slave <instancedetails> :故障轉(zhuǎn)移操作現(xiàn)在處于select-slave 狀態(tài) —— Sentinel 正在尋找可以升級為主服務(wù)器的從服務(wù)器。

no-good-slave <instance details> :Sentinel 操作未能找到適合進(jìn)行升級的從服務(wù)器。Sentinel 會在一段時間之后再次嘗試尋找合適的從服務(wù)器來進(jìn)行升級,又或者直接放棄執(zhí)行故障轉(zhuǎn)移操作。

selected-slave <instance details> :Sentinel 順利找到適合進(jìn)行升級的從服務(wù)器。

failover-state-send-slaveof-noone<instance details> :Sentinel 正在將指定的從服務(wù)器升級為主服務(wù)器,等待升級功能完成。

failover-end-for-timeout <instancedetails> :故障轉(zhuǎn)移因?yàn)槌瑫r而中止,不過最終所有從服務(wù)器都會開始復(fù)制新的主服務(wù)器(slaves will eventually be configured to replicate with the newmaster anyway)。

failover-end <instance details> :故障轉(zhuǎn)移操作順利完成。所有從服務(wù)器都開始復(fù)制新的主服務(wù)器了。

+switch-master <master name><oldip> <oldport> <newip> <newport> :配置變更,主服務(wù)器的 IP 和地址已經(jīng)改變。 這是絕大多數(shù)外部用戶都關(guān)心的信息。

+tilt :進(jìn)入 tilt 模式。

-tilt :退出 tilt 模式。

1.5測試驗(yàn)證

可以對master-slave進(jìn)行測試,將master關(guān)閉,此時slave會自動充當(dāng)新的new-master;

當(dāng)old-master恢復(fù)后,會充當(dāng)new-master的slave,即:在這個過程中,sentinel.conf會被改寫,改寫為當(dāng)前監(jiān)控的主機(jī)master服務(wù);

如下圖測試所示:

Master服務(wù)停止:

Old-Master恢復(fù)服務(wù):

以上這篇Redis Sentinel服務(wù)配置流程(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • redis使用watch秒殺搶購實(shí)現(xiàn)思路

    redis使用watch秒殺搶購實(shí)現(xiàn)思路

    這篇文章主要為大家詳細(xì)介紹了redis使用watch秒殺搶購的實(shí)現(xiàn)思路,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Redis連接超時異常的處理方法

    Redis連接超時異常的處理方法

    這篇文章主要給大家介紹了關(guān)于Redis連接超時異常的處理方法,文中通過示例代碼以及圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • redis通過redis-dump鏡像實(shí)現(xiàn)數(shù)據(jù)遷移

    redis通過redis-dump鏡像實(shí)現(xiàn)數(shù)據(jù)遷移

    本文主要介紹了redis通過redis-dump鏡像實(shí)現(xiàn)數(shù)據(jù)遷移,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • 淺談Redis的幾個過期策略

    淺談Redis的幾個過期策略

    在使用redis時,一般會設(shè)置一個過期時間,當(dāng)然也有不設(shè)置過期時間的,也就是永久不過期。當(dāng)設(shè)置了過期時間,redis是如何判斷是否過期,以及根據(jù)什么策略來進(jìn)行刪除的。
    2021-05-05
  • RedisTemplate中boundHashOps的使用小結(jié)

    RedisTemplate中boundHashOps的使用小結(jié)

    redisTemplate.boundHashOps(key)?是 RedisTemplate 類的一個方法,本文主要介紹了RedisTemplate中boundHashOps的使用小結(jié),具有一定的參考價值,感興趣的可以了解一下
    2024-04-04
  • 如何用redis?setNX命令來加鎖

    如何用redis?setNX命令來加鎖

    這篇文章主要介紹了如何用redis?setNX命令來加鎖,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Redis禁用命令、危險命令及規(guī)避方法

    Redis禁用命令、危險命令及規(guī)避方法

    這篇文章主要介紹了Redis禁用命令、危險命令及規(guī)避方法,本文介紹了個非常致命的兩個命令以及用配置文件禁用這些命令的方法,需要的朋友可以參考下
    2015-06-06
  • Redis實(shí)現(xiàn)用戶關(guān)注的項(xiàng)目實(shí)踐

    Redis實(shí)現(xiàn)用戶關(guān)注的項(xiàng)目實(shí)踐

    本文主要介紹了Redis實(shí)現(xiàn)用戶關(guān)注的項(xiàng)目實(shí)踐,通過使用Redis的set數(shù)據(jù)結(jié)構(gòu)來存儲關(guān)注對象,方便高效地進(jìn)行添加和取消關(guān)注操作,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • Redis過期鍵與內(nèi)存淘汰策略深入分析講解

    Redis過期鍵與內(nèi)存淘汰策略深入分析講解

    因?yàn)閞edis數(shù)據(jù)是基于內(nèi)存的,然而內(nèi)存是非常寶貴的資源,然后我們就會對一些不常用或者只用一次的數(shù)據(jù)進(jìn)行存活時間設(shè)置,這樣才能提高內(nèi)存的使用效率,下面這篇文章主要給大家介紹了關(guān)于Redis中過期鍵與內(nèi)存淘汰策略,需要的朋友可以參考下
    2022-11-11
  • redis.conf中使用requirepass不生效的原因及解決方法

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

    本文主要介紹了如何啟用requirepass,以及啟用requirepass為什么不會生效,從代碼層面分析了不生效的原因,以及解決方法,需要的朋友可以參考下
    2023-07-07

最新評論

丹寨县| 濮阳市| 远安县| 曲松县| 广平县| 新干县| 原阳县| 宾阳县| 曲水县| 宁陕县| 耿马| 勃利县| 宝兴县| 吴堡县| 海丰县| 清丰县| 垫江县| 湘潭市| 日土县| 永川市| 江西省| 临城县| 侯马市| 同仁县| 淮北市| 独山县| 南和县| 贡嘎县| 墨脱县| 德昌县| 喀什市| 庄河市| 张家界市| 乐清市| 林州市| 黔西县| 彭阳县| 焉耆| 获嘉县| 翼城县| 丰都县|