python redis 哨兵_Redis哨兵機制

概述

上篇文章主要說了Redis 復制的內容,但 Redis 復制有一個缺點,當主機 Master 宕機以后,我們需要人工解決切換,比如使用slaveof no one 。實際上主從復制并沒有實現,高可用, 高可用側重備份機器, 利用集群中系統的冗余,當系統中某臺機器發生損壞的時候,其他后備的機器可以迅速的接替它來啟動服務。

主從復制的問題

一旦主節點宕機,寫服務無法使用,就需要手動去切換,重新選取主節點,手動設置主從關系。

那么如何解決呢?如果我們有一個監控程序能夠監控各個機器的狀態及時作出調整,將手動的操作變成自動的。Sentinel的出現就是為了解決這個問題。

哨兵機制的原理及實現

Redis Sentinel

Redis Sentinel 是一個分布式架構,其中包含若干個 Sentinel 節點和 Redis 數據節點,每個 Sentinel 節點會對數據節點和其余 Sentinel 節點進行監控,當它發現節點不可達時,會對節點做下線標識。如果被標識的是主節點,它還會和其他 Sentinel 節點進行“協商”,當大多數 Sentinel 節點都認為主節點不可達時,它們會選舉出一個 Sentinel 節點來完成自動故障轉移的工作,同時會將這個變化實時通知給 Redis 應用方。整個過程完全是自動的,不需要人工來介入,所以這套方案很有效地解決了 Redis 的高可用問題。

如圖所示:

基本的故障轉移流程

1)主節點出現故障,此時兩個從節點與主節點失去連接,主從復制失敗。

2)每個 Sentinel 節點通過定期監控發現主節點出現了故障

3)多個 Sentinel 節點對主節點的故障達成一致會選舉出其中一個節點作為領導者負責故障轉移。

4)Sentinel 領導者節點執行了故障轉移,整個過程基本是跟我們手動調整一致的,只不過是自動化完成的。

5)故障轉移后整個 Redis Sentinel 的結構,重新選舉了新的主節點。

實例

redis-sentinel1 172.10.0.9 22530 -> 22530 sentinel

redis-sentinel2 172.10.0.10 22531 -> 6379 sentinel

redis-sentinel3 172.10.0.11 22532 -> 6379 sentinel

redis-master2 172.10.0.5 6383 -> 6379 Master

redis-slave2 172.10.0.6 6384 -> 6379 Slave

redis-slave3 172.10.0.7 6385 -> 6379 Slave

配置

Sentinel 的核心配置

sentinel monitor mymaster 127.0.0.1 7000 2

監控的主節點的名字、IP 和端口,最后一個2的意思是有幾臺 Sentinel 發現有問題,就會發生故障轉移,例如 配置為2,代表至少有2個 Sentinel 節點認為主節點不可達,那么這個不可達的判定才是客觀的。對于設置的越小,那么達到下線的條件越寬松,反之越嚴格。一般建議將其設置為 Sentinel 節點的一半加1。

sentinel down-after-millseconds mymaster 30000

這個是超時的時間(單位為毫秒)。打個比方,當你去 ping 一個機器的時候,多長時間后仍 ping 不通,那么就認為它是有問題。

sentinel parallel-syncs mymaster 1

當 Sentinel 節點集合對主節點故障判定達成一致時,Sentinel 領導者節點會做故障轉移操作,選出新的主節點,原來的從節點會向新的主節點發起復制操作,parallel-syncs 就是用來限制在一次故障轉移之后,每次向新的主節點發起復制操作的從節點個數,指出 Sentinel 屬于并發還是串行。1代表每次只能復制一個,可以減輕 Master 的壓力。

sentinel auth-pass

如果 Sentinel 監控的主節點配置了密碼,sentinel auth-pass 配置通過添加主節點的密碼,防止 Sentinel 節點對主節點無法監控。

sentinel failover-timeout mymaster 180000

表示故障轉移的時間。

技巧

1)Sentinel 節點不應該部署在一臺物理“機器”上。

這里特意強調物理機是因為一臺物理機做成了若干虛擬機或者現今比較流行的容器,它們雖然有不同的 IP 地址,但實際上它們都是同一臺物理機,同一臺物理機意味著如果這臺機器有什么硬件故障,所有的虛擬機都會受到影響,為了實現 Sentinel 節點集合真正的高可用,請勿將 Sentinel 節點部署在同一臺物理機器上。

2)部署至少三個且奇數個的 Sentinel 節點。

3個以上是通過增加 Sentinel 節點的個數提高對于故障判定的準確性,因為領導者選舉需要至少一半加1個節點,奇數個節點可以在滿足該條件的基礎上節省一個節點。

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

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

相關文章

labview自動生成html,使用LabVIEW實現網頁數據提取及交互.pptx

使用 LabVIEW 控制IE或WebBrowser實現網頁數據的提取和交互By GSD:attraction - 張生斌2013.1.11可能會遇到的問題網頁能否被程序控制,程序和網頁如何通信?如何下載網頁中我們所關注的數據?如何用程序修改網頁中表單的內容&#x…

pdf python定位_如何使用PyPDF2獲取PDF定位

我正在使用Python/Django。PyPDF2閱讀我目前的pdf。如何使用PyPDF2獲取PDF定位我想閱讀我已經保存的pdf文件,并獲得pdf內單頁的方向。我期望能夠確定頁面是橫向還是縱向。tempoutpdffilelocation settings.TEMPLATES_ROOT nameOfFinalPdfpageOrientation pageToE…

android 內容顯示欄,android – 在工具欄下顯示內容

您好我試圖簡單地將我的內容放在工具欄下面,但是當我運行我的應用程序時,當它應該低于它時,一些內容隱藏在它后面.我已經閱讀了關于使用框架布局來嘗試將其分開但我已經陷入困境.我目前正在使用隨軟件提供的基本android studio導航抽屜模板,并想知道我必須做出哪些更改.我的協調…

ios nslog 例子_iOS 典型內存泄露案例 - zhenshan2013的個人空間 - 51Testing軟件測試網 51Testing軟件測試網-軟件測試人的精神家園...

最近進行iOS 安全黑匣子的測試,在Demo中通過不斷的點擊調加密接口,同時通過蘋果自帶instrument的leak工具監控,發現典型的內存泄漏,監控圖如下:上圖中紅色的部分表示該操作觸發的代碼有內存泄漏的可能,于是拿出源代碼來研究一番,源代碼如下://加密接口-(IBAction)encrypt:(id)s…

HTML餅狀圖中心添加文字,echarts餅狀圖環形中間動態文字

let currName "";let myChart echarts.getInstanceByDom(document.getElementById(‘chart-panel‘));//console.log(myChart);myChart.on(‘mouseover‘, (params) >{currNameparams.name;console.log(params)let opmyChart.getOption();let _label{normal:{sho…

pos共識機制_OK區塊鏈60講 | 第17集:什么是PoS共識機制

什么是PoS共識機制https://www.zhihu.com/video/1196092110837805056《OK區塊鏈60講》是由OKEx&新浪科技聯合出品的區塊鏈科普動畫視頻,針對區塊鏈零基礎用戶,通過系列文章、科普動畫等形式,從概念、技術、應用等角度,…

html溢出左右滾動,html-選項卡溢出時水平滾動

我在容器中有一個基本表。 該表將包含約25列。 我正在嘗試在表格溢出時添加水平滾動條,現在過得很艱難。現在正在發生的情況是,表格單元格通過自動調整單元格的高度并保持固定的表格寬度來容納單元格的內容。對于我的方法為何無法解決此問題的建議&#…

大疆無人機android登錄閃退,你的DJI APP閃退了嗎?附官方解決方案

原標題:你的DJI APP閃退了嗎?附官方解決方案今天,很多飛友反應,在使用大疆無人機過程中出現DJI APP閃退情況。隨后在大疆社區官方給出了解決方案,如下:關于DJI GO 4 APP閃退解決方案目前關于DJI GO4 APP閃退…

ps導出gif顏色不對_PS基礎知識(1)

視圖平移命令:1,使用工具箱中的抓手工具或著(H)2按住空格鍵,上下左右移動視圖。(常用方法)圖像格式PSD:原始的圖像文件,包含所有的 Photoshop 處理信息,如圖層&#xff0…

html如何設置鼠標選中狀態,怎么用CSS 設置 當鼠標移動到菜單時,該按鈕變色,鼠標點擊后,頁面停留在鼠標滑過時的狀態!!很急!...

用javascript就可以,基本代碼在下面,你自己照著改吧htmlheadmeta http-equivContent-Type contenttext/html;charset gb2312 //headbodyscript typetext/javascriptfunction changeA(){document.getElementById(menuA).style.background#f00;document.g…

python中難的算法_Python算法很難嗎?python神書《算法圖解》PDF電子版分享給你

許多小伙伴后臺私信說,python算法讓自己很頭疼,有沒有可以讓算法像小說一樣有趣的書籍資料呢?看這里吧!小宋為大家找到了這本《算法圖解》的PDF電子版!讓你在學習python的路上變得輕松有趣!內 容 提 要本書…

音樂分享 html,支付寶朋友圈可以分享音樂嘛

打開手機,找到手機里面的支付寶應用點擊進入在進入的支付寶界面里,選擇底下的朋友點擊進入在彈出的朋友界面選擇生活圈選擇生活圈下方的朋友動態進到朋友動態界面,點擊右上角的照相機圖標支付寶 怎么發朋友圈動態?進入支付寶頁面中…

eplan單線原理圖多線原理圖_EPLAN-黑盒-2

3、黑盒的功能定義制作完成的黑盒僅僅圖形化描述了一個變頻器,它實現邏輯上的智能了嗎?雙擊黑盒彈出屬性標簽,它的主標簽還是現實黑盒,如圖,圖形和邏輯還沒匹配。因此,必須為它重新定義功能。EPLAN的功能定…

html圖片熱點新窗口,HTML基礎必看---表單,圖片熱點,網頁劃區和拼接詳解

html表單里面的圖片點擊相應圖片跳轉到本頁其他去在表格里面選了這個 鼠標點擊一下跳轉到相應區塊 代碼要怎么寫,夜影驅動編程小編今天和大家分享大神需要在一張圖片上設置多個能點擊跳轉的鏈接區域時,推薦使用網頁的熱點鏈接。 參考代碼如下&#xff1a…

ios 點擊出現另外一套tabbar_IOS 點擊tabbaritem跳轉到一個新界面,且隱藏tabbar

先自定義一個UITabbarController,用于Storyboard中再在MyTabbarController中實現protocolinterface MyTabbarController : UITabBarController end再實現代理里面的方法implementation MyTabbarController- (BOOL)tabBarController:(UITabBarController *)tabBarCon…

viewpage 去掉左右切換效果_ViewPager實現多頁面切換以及動畫效果

作者寫的非常詳細,在此贊一下。尤其畫圖示意計算。常看代碼不知coder數字的含義,看此博文無此感。我只在此列出流程和需要注意的點。步驟1:導入android-support-v4.jar包兩種方法(升級到adt17 后需要注意的問題)a, 新建libs文件夾…

獲取html內標題,通過html敏捷包獲取標題標簽

我正在嘗試使用htmlagility pack來獲得結果的鏈接和結果我有這個代碼using HtmlAgilityPack;using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Net;using …

html視頻播放div,打造自己的html5視頻播放器

推薦這篇文章遇新是直朋能到:前段時間重新少端原碼動近基開創學畫近基開創學畫近基開學習了一下html5的video部分,以前只是停留在標簽的使用上,這一次決定深入了解相關的API,并運用這些API打造一個簡單的視頻播放器。所謂“打造自…

wpf 代碼獲取contextmenu_[C#]?轉:在WPF里面獲取右鍵彈出菜單(ContextMenu)的鼠標點擊源(Owner)控件...

WPF的ContextMenu沒有類似WinForm里面ContextMenu.SourceControl的概念,但是你可以通過ContextMenuService的GetPlacementTarget方法來獲取類似的效果。很多時候,我們會希望在WPF的資源文件里面定義一個通用的右鍵彈出菜單,然后將這個菜單通過…

2021遼寧高考藝考成績查詢系統入口,2019年遼寧省藝考統考成績查詢官方入口

2019年遼寧省普通高等學校招生美術類、音樂舞蹈類專業統考成績已經公布。考生可以通過以下方式查詢美術類、音樂舞蹈類專業統考成績:一、美術類專業統考合格分數線美術類本科專業統考合格分數線為185分,且3門科目中至少有2門各不低于60分;專科專業統考合…