日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis大乱探------哨兵(二)

發布時間:2024/4/17 数据库 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis大乱探------哨兵(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

1.1前言

????? ? 前一篇文章中,我們分析了主從復制的原理,但是在該模式下,一旦主節點由于故障無法提供服務,需要人工干預才能將從節點變為主節點,因此該模式不是高可用的。欣慰的是,Redis從2.8開始正式提供哨兵架構來解決這個問題。

1.2哨兵

????? ? 當主節點出現故障時,哨兵(Redis Sentinel)模式下能自動完成故障發現和故障轉移,并通知應用方,從而實現真正的高可用。

1.2.1故障發現

  • Sentinel節點每隔1秒鐘向主節點發動ping命令判斷其存活狀態,當主節點在down-after-milliseconds時間內沒有正確的響應,則Sentinel將此主節點置為“主觀下線”。主觀即當前Sentinel節點單方面認為主節點不可用,并沒有得到其他Sentinel節點的確認。
  • 隨后該Sentinel節點會通過 is-master-down-by-addr命令向其他Sentinel節點進行確認。當確認的Sentinel節點數>=quorum時,則該Sentinel節點認定該主節點“客觀下線”。
  • 當判定主節點為客觀下線時,需要選取一個Sentinel節點作為領導者來處理故障轉移工作。Redis使用了Raft算法實現領導者選舉。大致選舉流程如下:首先Sentinel節點確認主節點主觀下線時,會像其他Sentinel節點發送is-master-down-by-addr命令,要求將自己設置為領導者。然后收到該命令的Sentinel節點,如果沒有同意過其他Sentinel節點的命令,則同意該請求,否則拒絕。最后如果該Sentinel節點如果收到超過一半的意向同意,則成為領導者,如果本回合沒有選出領導者,則開啟下一回合。

1.2.2故障轉移

????? ? 步驟如下:

  • 在從節點列表中選出一個節點作為新的主節點(1.先過濾掉不健康節點。2.選擇從節點優先級最高的從節點,最在則返回,否則繼續第三步。3.選擇復制偏移量最大的節點,即復制最完整的節點,不存在則繼續第四步。4.選擇runid最小的從節點)。
  • 將上面選出來的從節點執行slaveof no one? 命令,讓其成為主節點。
  • Sentinel領導者節點向剩余的從節點發送命令,讓他們成為新主節點的從節點。

1.3總結

????? ? 哨兵機制能夠自動完成故障發現和故障轉移,有效的解決了Redis的高可用問題。

????????????

?

轉載于:https://my.oschina.net/wuchanghao/blog/1824112

總結

以上是生活随笔為你收集整理的Redis大乱探------哨兵(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。