婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Redis Sentinel服務(wù)配置流程(詳解)

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

熱門標(biāo)簽:西藏教育智能外呼系統(tǒng)價(jià)格 最簡單的百度地圖標(biāo)注 玄武湖地圖標(biāo)注 地圖標(biāo)注如何即時(shí)生效 百度商家地圖標(biāo)注怎么做 太原營銷外呼系統(tǒng) 地圖標(biāo)注費(fèi)用 小紅書怎么地圖標(biāo)注店 竹間科技AI電銷機(jī)器人

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)問題時(shí), Sentinel 可以通過API 向管理員或者其他應(yīng)用程序發(fā)送通知。

自動故障遷移(Automatic failover): 當(dāng)一個主服務(wù)器不能正常工作時(shí), Sentinel 會開始一次自動故障遷移操作, 它會將失效主服務(wù)器的其中一個從服務(wù)器升級為新的主服務(wù)器, 并讓失效主服務(wù)器的其他從服務(wù)器改為復(fù)制新的主服務(wù)器; 當(dāng)客戶端試圖連接失效的主服務(wù)器時(shí), 集群也會向客戶端返回新主服務(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ù)器時(shí)通過給定 --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)時(shí)間、超過則認(rèn)為主觀下線

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

sentinel failover-timeout master-7000 180000            #配置當(dāng)出現(xiàn)failover時(shí)下一個sentinel與上一個sentinel對[同一個master監(jiān)測的時(shí)間間隔](最后設(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時(shí),如果它不能向至少一個slave寫數(shù)據(jù)(上面的min-slaves-to-write指定了slave的數(shù)量),它將會拒絕接受客戶端的寫請求。由于復(fù)制是異步的,master無法向slave寫數(shù)據(jù)意味著slave要么斷開連接了,要么不在指定時(shí)間內(nèi)向master發(fā)送同步數(shù)據(jù)的請求了(上面的min-slaves-max-lag指定了這個時(shí)間)。

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í)行的定時(shí)任務(wù)

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

2. 如果一個實(shí)例(instance)距離最后一次有效回復(fù) PING 命令的時(shí)間超過 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ù)量)在指定的時(shí)間范圍內(nèi)同意這一判斷, 那么這個主服務(wù)器被標(biāo)記為客觀下線。

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

6. 當(dāng)沒有足夠數(shù)量的 Sentinel 同意主服務(wù)器已經(jīng)下線, 主服務(wù)器的客觀下線狀態(tài)就會被移除。 當(dāng)主服務(wù)器重新向 Sentinel 的 PING 命令返回有效回復(fù)時(shí), 主服務(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í)例重啟的時(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 會在一段時(shí)間之后再次嘗試尋找合適的從服務(wù)器來進(jìn)行升級,又或者直接放棄執(zhí)行故障轉(zhuǎn)移操作。

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

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

failover-end-for-timeout instancedetails> :故障轉(zhuǎn)移因?yàn)槌瑫r(shí)而中止,不過最終所有從服務(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)閉,此時(shí)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)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Redis Sentinel的基本搭建
  • Redis服務(wù)之高可用組件sentinel詳解
  • 詳解SpringBoot Redis自適應(yīng)配置(Cluster Standalone Sentinel)
  • 基于docker搭建redis-sentinel集群的方法示例
  • Linux redis-Sentinel配置詳解
  • Redis Sentinel實(shí)現(xiàn)哨兵模式搭建小結(jié)
  • 玩轉(zhuǎn)Redis搭建集群之Sentinel詳解
  • Redis Sentinel實(shí)現(xiàn)高可用配置的詳細(xì)步驟
  • java客戶端Jedis操作Redis Sentinel 連接池的實(shí)現(xiàn)方法
  • Redis Sentinel的使用方法

標(biāo)簽:林芝 景德鎮(zhèn) 唐山 澳門 廣東 揚(yáng)州 贛州 香港

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Redis Sentinel服務(wù)配置流程(詳解)》,本文關(guān)鍵詞  Redis,Sentinel,服務(wù),配置,流程,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Redis Sentinel服務(wù)配置流程(詳解)》相關(guān)的同類信息!
  • 本頁收集關(guān)于Redis Sentinel服務(wù)配置流程(詳解)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 皋兰县| 九台市| 金乡县| 新乡县| 德兴市| 奉化市| 麻城市| 西乌珠穆沁旗| 嘉黎县| 香河县| 濮阳县| 湟中县| 綦江县| 佛冈县| 汝南县| 望城县| 江永县| 西华县| 壤塘县| 阿坝县| 大港区| 那曲县| 平南县| 莱西市| 宁远县| 万荣县| 阜阳市| 得荣县| 天水市| 平遥县| 林周县| 舟山市| 桦南县| 大名县| 浑源县| 香港| 洪泽县| 顺昌县| 保靖县| 西贡区| 晋宁县|