日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

【Redis】Redis哨兵模式

作者:Mr.VK 更新時間: 2024-03-10 編程語言

【Redis】Redis哨兵模式

Redis主從模式當主服務器宕機后,需要手動把一臺從服務器切換為主服務器,需要人工干預費事費力,為了解決這個問題出現了哨兵模式。

哨兵模式是是一個管理多個 Redis 實例的工具,它可以實現對 Redis 的監控、通知、自動故障轉移,是Redis實現高可用的方案。哨兵模式能夠在發生故障時自動觸發故障轉移流程,從而保證集群的高可用性。

哨兵模式概述

Redis 可以存在多臺服務器,并且實現了主從復制的功能。哨兵模式是一種特殊的模式,在 Redis 中哨兵是一個獨立的進程。其原理是哨兵通過發送命令,等待 Redis 服務器響應,從而監控運行的多個 Redis 實例是否可以正常工作,如下圖所示。

在這里插入圖片描述

  • 通過發送命令,讓 Redis 服務器返回其運行狀態,包括主服務器和從服務器。
  • 當哨兵監測到主機出現故障后,會自動將其中一臺從服務器切換成主服務器,然后通過發布訂閱模式通知其他的從服務器,修改配置文件,讓它們切換新的主服務器。

但是在現實中,一個哨兵進程監控 Redis 服務器,也可能出現問題,因為這個哨兵進程本身也可能出現故障。為了處理這個問題,可以使用多個哨兵監控,而各個哨兵之間還會相互監控,這樣就變為了多個哨兵模式。除了監控各個 Redis 主從服務器,各個哨兵之間還會互相監控,看看哨兵們是否還“活”著。其關系如下圖所示。

在這里插入圖片描述

論述一下故障切換 (failover) 的過程:假設主服務器宕機,哨兵1先監測到這個結果,當時系統并不會馬上進行 failover 操作,而僅僅是哨兵1 主觀地認為主服務器已經不可用,這個現象被稱為主觀下線。當后面的哨兵也監測到了主服務器不可用,并且有了一定數量的哨兵認為主服務器不可用后,哨兵之間就會形成一次投票。通過哨兵之間的投票機制,選出新的主服務器后,就會通過發布訂閱方式,讓各個哨兵對自己監控的服務器進行切換主服務器操作,這個過程被稱為客觀下線。這樣對于 Redis 客戶端而言,一切都是透明的。

故障轉移流程

故障轉移需要選擇一個slaver節點來作為master。

選擇主Maseter過程大致如下:

  1. 選擇優先級最高的節點,通過sentinel配置文件中的replica-priority配置項,這個參數越小,表示優先級越高
  2. 如果第一步中的優先級相同,選擇offset最大的,offset表示主節點向從節點同步數據的偏移量,越大表示同步的數據越多
  3. 如果第二步offset也相同,選擇run id較小的

這樣通過以上四大步驟,實現由Redis Sentinel自動完成故障發現和轉移,實現自動高可用。

Redis 哨兵模式的優缺點

哨兵模式優點:最大的優點就是主從可以自動切換,系統更健壯,可用性更高

哨兵模式缺點:最大的缺點就是還要多維護一套哨兵模式,實現起來也變的更加復雜增加維護成本

最大的缺點就是還要多維護一套哨兵模式,實現起來也變的更加復雜增加維護成本

原文鏈接:https://blog.csdn.net/Mr_VK/article/details/132371696

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新