麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > Redis > 正文

Redis哨兵機制的原理介紹(圖文)

2020-03-22 17:38:06
字體:
來源:轉載
供稿:網友
本篇文章給大家帶來的內容是介紹Redis的哨兵機制,讓大家了解哨兵機制的原理和如何實現。有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

概述

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

主從復制的問題

1.jpg

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

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

哨兵機制的原理及實現

Redis Sentinel

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

如圖所示:


2.png

基本的故障轉移流程

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

3.jpg

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

4.jpg

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

5.jpg

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


6.jpg

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

7.jpg

實例

使用docker創建如下redis容器
redis-sentinel1 172.10.0.9 22530 - 22530 sentinelredis-sentinel2 172.10.0.10 22531 - 6379 sentinelredis-sentinel3 172.10.0.11 22532 - 6379 sentinelredis-master2 172.10.0.5 6383 - 6379 Masterredis-slave2 172.10.0.6 6384 - 6379 Slaveredis-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 的壓力。

8.jpg

sentinel auth-pass master-name password 

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

sentinel failover-timeout mymaster 180000

表示故障轉移的時間。

技巧

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

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

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

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

【相關文章】

Redis主從復制的原理介紹(圖文)

以上就是本篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以關注php 相關教程欄目!!!

以上就是Redis哨兵機制的原理介紹(圖文)的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产亚洲精品成人 | 色欧美视频 | 日本在线精品视频 | h视频在线免费看 | 久久久电影电视剧免费看 | 中文在线观看免费视频 | 经典三级在线视频 | 欧美日韩在线免费观看 | 日韩视频高清 | 欧美一级高潮 | 成人在线视频免费 | 日本a级一区 | 欧美不卡视频在线观看 | 亚洲乱码精品久久久久 | 黄片毛片一级 | 美女扒开腿让男生桶爽网站 | 欧美激情精品久久久久久久久久 | 亚洲精品动漫在线观看 | 精品一区二区三区免费毛片爱 | 精品视频一区二区三区四区 | 成人性视频欧美一区二区三区 | 亚洲成人精品一区二区 | 久久91精品 | 亚洲国产二区 | 国产精品一区二区在线 | 亚洲午夜网站 | 国产精品久久国产精品 | 国产精品一区二区在线 | 中文字幕观看 | 免费国产自久久久久三四区久久 | 黄色av免费电影 | 欧美3p激情一区二区三区猛视频 | 一级免费观看 | 精品国产一区二区三区在线观看 | 在线视频 中文字幕 | 国内精品久久久久久久久久 | 在线免费观看欧美 | 亚洲欧美一区二区三区在线观看 | 九九视屏 | 色交视频| 亚洲成人入口 |