15 reids哨兵機制

redis主機默認是10s發送一次心跳給從節點。
從節點默認1s去發送心跳給主節點。

1、原理

當主節點出現故障時,由Redis Sentinel自動完成故障發現和轉移,并通知應用方,實現高可用性。

從節點的主要兩個作用:

  1. 主節點的數據備份。
  2. 實現讀寫分離
2、部署架構

為了防止哨兵宕機,因此哨兵也是需要多臺部署,不少于3臺.
在這里插入圖片描述
哨兵本身也是一臺redis節點,只是充當監控的角色,不參與業務操作,不存儲數據

3、哨兵實現原理

按照上圖的部署架構,哨兵依賴于3個定時任務去實現監控和故障轉移。
在這里插入圖片描述
定時任務作用一

1.sentinel節點向主從節點發送一次info命令.就可以得到主從的拓撲結構。
//例如有新的從節點加入,執行slaveof命令后,哨兵會再下一次info命令后感知到新的拓撲結構。
2.同理,主機或者某一個從節點宕機,那么哨兵再次執行info命令的時候,會感知到新的哨兵結構,做出對應的操作.

定時任務作用二
每隔2s的一次publish/subscribe

1. 哨兵1,23會向redis中的數據節點發送發布訂閱命令。
2. 目的是為了感知新加入的哨兵節點,以及在哨兵之間交互主節點的狀態。

定時任務作用三
每隔1s發送一次ping

1.例如,哨兵3每隔1s向哨兵1,2,主節點,從節點發送一次ping心跳。
//首先是判斷各個節點是否存活

由此可以看出,哨兵還是挺忙的,忙著故障的恢復和轉移
哨兵與主從的通訊
在這里插入圖片描述

4、主管下載,客觀下線,領導者選舉

在這里插入圖片描述
達到客觀下線的條件后,開啟領導者哨兵選舉
在這里插入圖片描述
誰先發現下線,誰就是哨兵的領導者

5、故障轉移

在這里插入圖片描述

1. 哨兵從從節點列表中,選擇一臺從節點。
2. 過濾掉不監控的從節點,一般是5s內沒有回復pong的。
3. 如果兩個從節點都是健康的,則選擇那個優先級高的。優先級是可以配置的
4. 如果以上不滿足,則選擇復制最完整的節點來充當主節點。
5. 如果還不滿足,則選擇runid最小的節點。runid最小表示是最早啟動的節點。

在這里插入圖片描述
哨兵完成主從切換后,對于Java客戶端來說,是無感知的,客戶端如何操作呢?不可能去修改配置文件的。
通過JedisSentinelPool實現在客戶端的主從切換

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/166646.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/166646.shtml
英文地址,請注明出處:http://en.pswp.cn/news/166646.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【2023年APMCM亞太杯C題】完整代碼+結果分析+論文框架

2023年APMCM亞太杯C題 完整代碼結果分析論文框架第一問問題分析技術文檔1 基于AHP的新能源汽車發展影響因素分析1.1 AHP模型的構建1.2 AHP模型的求解 2 基于自適應ARIMA-非線性回歸模型的影響因素預測2.1 ARIMA模型的建立2.2 非線性回歸模型的建立2.3 自適應混合ARIMA-非線性回…

【數據結構/C++】線性表_順序表的基本操作

#include <iostream> using namespace std; #define MaxSize 10 // 1. 順序表 // 靜態分配 typedef struct {int data[MaxSize];int length; // 當前長度 } SqList; // 靜態分配初始化順序表 void InitList(SqList &L) {for (int i 0; i < MaxSize; i){L.data[i]…

政務大數據與資源平臺建設解決方案:PPT全文75頁,附下載

關鍵詞&#xff1a;智慧政務解決方案&#xff0c;大數據解決方案&#xff0c;數據中心解決方案&#xff0c;數據治理解決方案 一、政務大數據與資源平臺建設背景 1、政務大數據已成為智慧城市建設的必要基礎 為響應國家不斷加快5G基建、大數據、人工智能等新型基礎設施建設布…

在MySQL中,修改字段A相同的記錄的字段B ,要使得字段C小的記錄的字段B值等于字段C大的記錄的字段B值

例如&#xff1a;更新具有相同電話號碼的用戶記錄&#xff0c;使得updatetime小的記錄的name值等于updatetime大的記錄的name值。 首先&#xff0c;我們需要創建一個用戶表&#xff0c;這個用戶表包含以下字段&#xff1a;phone&#xff0c;updatetime, name。以下是創建這個表…

Redis的性能,哨兵模式,集群,

Redis的性能管理; redis的數據保存在內存中 redis-cli info memory redis內存使用info memory命令參數解析 used_memory:236026888 由 Redis 分配器分配的內存總量&#xff0c;包含了redis進程內部的開銷和數據占用的內存&#xff0c;以字節&#xff08;byte&#xff09…

css里面的@import

import 說明 用于從其他樣式表導入樣式規則。可以是絕對或相對路徑&#xff0c;也可以是一個在線的url地址。import 規則必須在 CSS 文檔的頭部&#xff0c;但可以在 charset 規則后面。import 規則不是一個嵌套語句&#xff0c;import不能在條件組的規則中使用。import 規則…

虛擬化原理

目錄 什么是虛擬化廣義虛擬化狹義虛擬化 虛擬化指令集敏感指令集虛擬化指令集的工作模式監視器對敏感指令的處理過程&#xff1a; 虛擬化類型全虛擬化類虛擬化硬件輔助虛擬化 虛擬化架構裸金屬架構宿主機模式架構 什么是虛擬化 虛擬化就是通過模仿下層原有的功能模塊創造接口來…

【開源】基于JAVA的衣物搭配系統

項目編號&#xff1a; S 016 &#xff0c;文末獲取源碼。 \color{red}{項目編號&#xff1a;S016&#xff0c;文末獲取源碼。} 項目編號&#xff1a;S016&#xff0c;文末獲取源碼。 目錄 一、摘要1.1 項目介紹1.2 項目錄屏 二、研究內容2.1 衣物檔案模塊2.2 衣物搭配模塊2.3 衣…

linux進程調度(二)-進程創建

文章目錄 2.進程創建和終止2.1 進程創建的4種方法2.2 進程創建過程分析2.2.1 copy_process函數分析2.2.1.1 dup_task_struct函數分析2.2.1.2 sched_fork函數分析2.2.1.3 copy_mm函數分析2.2.1.4 copy_thread函數分析 2.2.2 wake_up_new_task函數分析 2.進程創建和終止 在 Linu…

常用數據存儲格式介紹:Excel、CSV、JSON、XML

在現代數字時代&#xff0c;數據經過提煉后可以推動創新、簡化運營并支持決策流程。然而&#xff0c;在提取數據之后&#xff0c;并將其加載到數據庫或數據倉庫之前&#xff0c;需要將數據轉化為可用的數據存儲格式。本文將介紹開發者常用的4種數據存儲格式&#xff0c;包括 Ex…

布局下一個時代,UTONMOS夯實元宇宙發展基礎

從 PC 互聯網到移動互聯網&#xff0c;再到元宇宙&#xff0c;互聯網的發展在一直不斷演變和升級著。元宇宙的時代紅利將帶來從底層基礎設施向外延展到用戶體驗的全面升級。 人們以各自不同視角理解元宇宙。但我們認為&#xff0c;目前學術界和產業界對元宇宙雖然沒有統一規范的…

JavaScript 閉包技巧

什么是閉包&#xff1f; MDN&#xff1a;“閉包是捆綁在一起&#xff08;封閉&#xff09;的函數及其周圍狀態&#xff08;詞法環境&#xff09;的引用的組合。換句話說&#xff0c;閉包使您可以從內部函數訪問外部函數的作用域。在 JavaScript 中&#xff0c;每次創建函數時都…

css引入的三種方式

css引入的三種方式 一、內聯樣式二、外部樣式表三、 內部樣式表總結trouble 一、內聯樣式 內聯樣式也被稱為行內樣式。它是將 CSS 樣式直接應用于 HTML 元素的 style 屬性中的一種方式 <p style"color: blue; font-size: 16px;">這是一個帶有內聯樣式的段落。&…

Modbus RTU轉Profinet網關連接PLC與變頻器通訊在機床上應用案例

背景&#xff1a;以前在機床加工車間里&#xff0c;工人們忙碌地操作著各種機床設備。為了使整個生產過程更加高效、流暢&#xff0c;進行智能化改造。 方案&#xff1a;在機床上&#xff0c;PLC通過Modbus RTU轉Profinet網關連接變頻器進行通訊&#xff1a;PLC作為整個生產線…

實現簡單的操作服務器和客戶端(下)

一、說明 描述:本教程介紹如何使用 simple_action_client 庫創建斐波那契操作客戶端。此示例程序創建一個操作客戶端并將目標發送到操作服務器。 內容 代碼代碼解釋編譯運行操作客戶端連接服務器和客戶端二、代碼 首先,在您喜歡的編輯器中創建actionlib_tutorials/src/fib…

【封裝UI組件庫系列】封裝Icon圖標組件

封裝UI組件庫系列第三篇封裝Icon圖標組件 &#x1f31f;前言 &#x1f31f;封裝Icon 1.創建Icon組件 2.引用svg圖標庫 第一步 第二步 第三步 3.二次封裝 4.封裝自定義屬性 &#x1f31f;總結 &#x1f31f;前言 在前端開發中&#xff0c;大家可能已經用過各種各樣的UI組…

VUE項目部署過程中遇到的錯誤:POST http://124.60.11.183:9090/test/login 405 (Not Allowed)

我當初報了這個405錯誤&#xff0c;再網上查了半天&#xff0c;他們都說什么是nginx部署不支持post訪問靜態資源。 但后面我發現我是因為另一個原因才導致的無法訪問。 我再vue中有使用devServer:{ proxy:{} }進行路由轉發。 但是&#xff01;&#xff01; 在這個配置只…

接口測試學習路線

接口測試分為兩種&#xff1a; 測試外部接口&#xff1a;系統和外部系統之間的接口 如&#xff1a;電商網站&#xff1a;支付寶支付 測試內部接口&#xff1a;系統內部的模塊之間的聯調&#xff0c;或者子系統之間的數據交互 測試重點&#xff1a;測試接口參數傳遞的正確性&…

node與 pnpm、node-sass 等工具的版本兼容關系

1. node & pnpm 2. node & node-sass 3. node-sass & sass-loader sass-loader依賴于node-sass&#xff0c;以下是部分版本號對應

Zookeeper 集群中是怎樣選舉leader的

zookeeper集群中服務器被劃分為以下四種狀態&#xff1a; LOOKING&#xff1a;尋找Leader狀態。處于該狀態的服務器會認為集群中沒有Leader&#xff0c;需要進行Leader選舉&#xff1b;FOLLOWING&#xff1a;跟隨著狀態&#xff0c;說明當前服務器角色為Follower&#xff1b;LE…