亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Redis > 正文

Redis服務之高可用組件sentinel詳解

2020-10-28 21:27:22
字體:
來源:轉載
供稿:網友

  前文我們了解了redis的常用數據類型相關命令的使用和說明,回顧請參考http://www.49028c.com/article/120364.htm 今天我們來聊一下redis的高可用組件sentinel;首先來回顧下redis的主從同步,主從同步最主要的作用是讓master的數據在其他服務器上實時存在副本,起到了備份的效果;對于redis的讀寫來說,主從架構能夠讓讀的請求分散到多個從服務器上,從而降低了單臺redis讀請求的io壓力,同時也提高了redis讀請求的并發能力;通常為了數據的一致性,從服務器一旦成為某一臺redis的slave,那么從服務器上之前有的數據會被清空,然后把master發送過來的數據應用到內存,從而實現和master數據一致;除此之外slave通常會是只讀屬性,也就說slave端只能執行讀操作,寫操作會被拒絕,所以寫請求始終是由master來完成;

那么問題來了,對于這種主從復制架構的環境中,如果master宕機了,master宕機意味著整個系統將不能夠寫數據到redis,很顯然這種情況我們應該及時解決;怎么解決呢?有沒有這樣的一組件幫我們對master做實時的監控,一旦發現master宕機就提升一個slave當選新的master,如果原master還有其他slave,將其他slave都從屬于新的master;除此之外它還應該讓系統在發生切換master時觸發報警通知,讓管理員盡快把壞掉的master修復上線;對,sentinel就有我們上述的這些功能,它能夠監控主從同步集群中的master節點,在master發生宕機后能夠自動故障轉移,將提升一臺slave作為新的master,然后通知管理員;

  Sentinel是一個分布式系統,我們可以在一個架構中運行多個sentinel,這些sentinel進程使用流言協議(gossipprotocols)來接收關于 Master是否下線的信息,并使用投票協議(Agreement Protocols)來決定是否執行自動故障遷移,以及選擇哪個 Slave 作為新的 Master。每個sentinel進程會向其他sentinel進程、master、slave定時發送消息,以確保對方是否”活”著,如果發現對方在指定配置時間(可配置的)內未得到回應,則暫時認為對方已掉線,也就是所謂的”主觀認為宕機” ,英文名稱:Subjective Down,簡稱 SDOWN。有主觀宕機,肯定就有客觀宕機。

當多個sentinel進程中多數的sentinel進程在對 Master 做出 SDOWN 的判斷,并且通過 SENTINEL is-master-down-by-addr 命令互相交流之后,得出的 Master Server 下線判斷,這種方式就是“客觀宕機”,英文名稱是:Objectively Down, 簡稱 ODOWN。通過一定的 vote 算法,從剩下的 slave 從服務器節點中,選一臺提升為 Master 服務器節點,然后自動修改相關配置,并開啟故障轉移(failover)。

  配置使用sentinel

  環境說明

角色 ip地址 端口
master 192.168.0.41 6379
slave01 192.168.0.42 6379
slave02 192.168.0.43 6379
sentinel01 192.168.0.41 26379
sentinel02 192.168.0.42 26379
sentinel03 192.168.0.43 26379

  架構圖

  提示:從上面的架構圖可以知道,首先我們必須要有一個主從架構的集群,然后在部署sentinel 來對主從同步集群做監控;

  redis主從復制集群搭建

  1、在192.168.0.41/42/43上安裝redis,可以使用yum安裝,也可以使用編譯安裝,redis安裝請參考http://www.49028c.com/article/79096.htm

  2、配置192.168.0.41/42/43上的redis監聽在非本機127.0.0.1上并配置42/43上的redis從屬于192.168.0.41

  master

  slave01

  slave02

  提示:redis支持在線修改配置,保存配置到配置文件;SLAVEOF 指令用于指定redismaster的ip地址和端口,表示把該redis配置成對應master的slave角色;CONFIG REWRITE是把我們的配置保存到配置文件;

  在master上查看是否有兩個從節點連接到master

  驗證:在master上寫數據,看看是否能夠及時同步到兩個slave上?

  提示:可以看到在主庫上寫數據,從庫上能夠及時的同步主庫上的數據;到此redis的主從集群就搭建完畢了;

  配置sentinel,讓其監控master

  提示:三個sentinel的配置都是一樣的,這里需要明確指定監控主從同步集群的master的ip地址和端口,以及有效法定票數,有效法定票數指的是至少有多少個sentinel主觀認為master down了,然后才觸發選舉新master操作;通常在這種流言協議中,一般都是大于集群半數,如果是3臺sentinel,至少要2臺主觀認為master宕機,才開始觸發選舉新master;如果是5臺,那至少要3臺;如果master配置的有認證密碼,我們還需要在sentinel中指定認證密碼;

  sentinel配置文件說明

  bind:該指令和redis配置文件中的bind是同樣的用法,用于指定sentinel的監聽地址;默認不指定,監聽本機所有可用地址;

  protected-mode:指定是否開啟保護模式;

  port:用于指定sentinel的監聽端口;默認是26379

  daemonize:用于指定sentinel是否運行為守護進程,yes表示運行為后臺守護進程;no表示不運行為守護進程,直接在前臺運行;

  pidfile:指定pid文件路徑;

  logfile:指定日志文件路徑;

  dir:指定sentinel的工作路徑;

  sentinel monitor <master-name> <ip> <redis-port> <quorum>:用于指定監控master節點的ip地址和端口以及有效法定票數;其中<master-name>是給監控的master一個名稱,可以隨便寫,起標識的作用;<quorum>表示sentinel集群的quorum機制,即至少有quorum個sentinel節點同時判定主節點故障時,才認為其真的故障;

  sentinel auth-pass <master-name> <password>:指定master認證密碼;通常都需要設置密碼,并且master的密碼和slave的密碼應該是一樣;

  sentinel down-after-milliseconds <master-name> <milliseconds>:配置監控到指定的集群的主節點異常狀態持續多久方才將標記為“故障”;

  sentinel parallel-syncs <master-name> <numslaves>:指在failover過程中,能夠被sentinel并行配置的從節點的數量;

  sentinel failover-timeout <master-name> <milliseconds>:sentinel必須在此指定的時長內完成故障轉移操作,否則,將視為故障轉移操作失?。?/p>

  sentinel notification-script <master-name> <script-path>:通知腳本,此腳本被自動傳遞多個參數;

  了解了sentinel的配置文件,接下我們把3臺sentinel都啟動起來

  master

  slave01

  slave02

  提示:從上面的信息可以看到3個sentinel都監控master的ip地址和端口,其實他們3個的配置文件都是一樣的;

  查看sentinel日志

  提示:從上面的日志信息可以了解到sentinel監控的master是192.168.0.41:6379;并且有兩個slave分別是192.168.0.42:6379和192.168.0.43:6379;

  查看sentinel狀態

  提示:它提示我們開啟了保護模式;

  關閉保護模式

  重啟sentinel,再次查看sentinel狀態

[root@master ~]# systemctl restart redis-sentinel.service[root@master ~]# ss -tnlState Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 511 *:26379 *:* LISTEN 0 511 *:6379 *:* LISTEN 0 128 *:22 *:* LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 511 :::26379 :::* LISTEN 0 128 :::22 :::* LISTEN 0 100 ::1:25 :::* [root@master ~]# redis-cli -h 192.168.0.41 -p 26379 192.168.0.41:26379> info sentinel# Sentinelsentinel_masters:1sentinel_tilt:0sentinel_running_scripts:0sentinel_scripts_queue_length:0sentinel_simulate_failure_flags:0master0:name=mymaster,status=ok,address=192.168.0.41:6379,slaves=2,sentinels=3192.168.0.41:26379> info clients# Clientsconnected_clients:3client_longest_output_list:0client_biggest_input_buf:0blocked_clients:0192.168.0.41:26379> CLIENT LISTid=2 addr=192.168.0.42:59048 fd=14 name=sentinel-f60b324b-cmd age=38 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=pingid=3 addr=192.168.0.43:37480 fd=15 name=sentinel-eada229c-cmd age=38 idle=1 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=publishid=4 addr=192.168.0.41:36706 fd=16 name= age=32 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client192.168.0.41:26379>

  提示:從上面的狀態信息可以看到當前sentinel監控的master是出于正常ok狀態,有兩個slave和3個sentinel;對于192.168.0.41:26379目前有3個客戶端連接,二個是sentinel,一個本機;到此3臺sentinel搭建啟動完成;

  驗證:把master宕機,看看sentinel是否將在兩個從節點選舉一個為新master?是否將另外一個slave重新指向新master?

  在slave01上查看主從同步信息

  提示:第一次查看只是告訴我們master宕機了,第二次查看就告訴我們當前節點為master,并且擁有一個slave節點,這說明已經完成了故障轉移,slave01已經被提升為新的master了;

  在192.168.0.43上查看主從信息,看看是否指向新的master?

  提示:在slave02上看主從同步信息,可以看到slave02已經從屬新master了;

  查看故障轉移時 sentinel日志

  提示:從上面的日志信息可以了解到,在從sdown到odown后,就會觸發vote算法開始選舉leader;然后將原master降級為slave,然后將選舉出來的leader原salve屬性去除(slaveof no one);然后提升新master,然后將剩下的slave重新配置新master為主;最后是切換master,開始新的監控;

  查看故障 轉移后的 redis 配置文件

  提示:故障轉移后 redis.conf 中的 slaveof 行的 master IP 會被修改,sentinel.conf 中的 sentinel monitor IP 會被修改。同時在sentinel配置文件的末尾還會有添加known-slave和known-sentinel等信息;

  修復舊master 讓其重新上線

  提示:把原master啟動后,它自動就成為了新主的slave;這主要是因為sentinel在故障轉移時把其配置文件中的slaveof 修改成新的master地址了;

  在新master上查看主從同步信息

  提示:在沒有恢復原master時,在新master上查看主從同步信息,只能看到一個salve,啟動原master后,在看就有兩個slave是在線;

總結

到此這篇關于Redis服務之高可用組件sentinel的文章就介紹到這了,更多相關Redis服務之高可用組件sentinel內容請搜索武林網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产欧美日韩91| 亚洲国语精品自产拍在线观看| 欧美一级淫片aaaaaaa视频| 亚洲视频在线观看网站| 高清视频欧美一级| 久久99久久久久久久噜噜| 亚洲欧洲自拍偷拍| 91九色视频在线| 操91在线视频| 久久精品亚洲一区| 最新国产成人av网站网址麻豆| 黑人巨大精品欧美一区二区免费| 欧美大片第1页| xvideos成人免费中文版| 色av中文字幕一区| 欧美日韩在线观看视频| 欧美成人手机在线| 中文字幕精品在线视频| 成人黄色在线免费| 久久露脸国产精品| 久久久久久国产精品| 视频在线一区二区| 中文字幕日韩综合av| 国产婷婷色综合av蜜臀av| xvideos国产精品| 久久久久久久久久久网站| 欧美剧在线观看| 久久久久五月天| 亚洲一区中文字幕| 91探花福利精品国产自产在线| 欧美大胆在线视频| 久久精品国产2020观看福利| 欧美超级乱淫片喷水| 97视频在线观看视频免费视频| 欧美久久精品一级黑人c片| 久久久久久69| 永久免费看mv网站入口亚洲| 亚洲护士老师的毛茸茸最新章节| 欧美成人午夜影院| 国产精品久久久久久久久影视| 亚洲午夜av久久乱码| 中文字幕在线观看亚洲| 日韩美女免费线视频| 欧美激情a在线| 91久久久久久久久久久| 久久久久国产精品一区| 国产成人精品优优av| 欧美一区二三区| 亚洲性线免费观看视频成熟| 日本国产欧美一区二区三区| 日韩av片免费在线观看| 国产成人avxxxxx在线看| 成人网页在线免费观看| 国外成人在线视频| 久久人人看视频| 国产精品国产福利国产秒拍| 色樱桃影院亚洲精品影院| 国产91对白在线播放| 麻豆精品精华液| 午夜精品福利电影| 日韩亚洲在线观看| 国产精品久久久久高潮| 欧美专区在线播放| 久久久精品美女| 蜜月aⅴ免费一区二区三区| 亚洲综合av影视| 91精品国产综合久久久久久久久| 在线午夜精品自拍| 亚洲视频综合网| 91嫩草在线视频| 欧美老妇交乱视频| 日韩性xxxx爱| 欧美做爰性生交视频| 7777kkkk成人观看| 久久精品电影网| 欧美理论片在线观看| 欧美性xxxxx极品娇小| 日韩欧美中文字幕在线观看| 久久天天躁日日躁| 欧美在线观看网址综合| 国产97人人超碰caoprom| 国产综合福利在线| 亚洲精品资源美女情侣酒店| 国产精品美女久久久久av超清| 在线观看日韩专区| 成人亚洲欧美一区二区三区| 久久不射热爱视频精品| 国产经典一区二区| 亚洲第一色中文字幕| 久久人人爽亚洲精品天堂| 成人性生交大片免费观看嘿嘿视频| 一区二区三区国产视频| 色综合91久久精品中文字幕| 欧美性感美女h网站在线观看免费| 欧美日韩亚洲成人| 久久九九国产精品怡红院| 欧美日韩激情视频8区| 亚洲自拍偷拍在线| 岛国av午夜精品| 欧美日韩国产精品一区二区三区四区| 亚洲精品免费在线视频| 亚洲国产一区二区三区在线观看| 久久影视免费观看| 日韩资源在线观看| 91av中文字幕| 欧美午夜性色大片在线观看| 精品视频在线播放免| 久久激情五月丁香伊人| 伊人久久精品视频| 中文字幕亚洲图片| 国产精品亚洲自拍| www亚洲精品| 成人av在线亚洲| 欧美日韩另类字幕中文| 亚洲成年网站在线观看| 91久久久久久久久| 久久精品91久久久久久再现| 日韩精品视频在线免费观看| 中文字幕综合在线| 久久精品国产亚洲精品| 欧美综合在线观看| 亚洲国产欧美一区二区丝袜黑人| 亚洲无线码在线一区观看| 久久成人综合视频| 91国内揄拍国内精品对白| 亚洲人成在线观看网站高清| 日韩精品丝袜在线| 色诱女教师一区二区三区| 国内精品视频久久| 亚洲欧美国产视频| 亚洲天堂男人天堂女人天堂| 亚洲欧洲一区二区三区在线观看| 日本道色综合久久影院| 日韩av在线一区| 欧美日韩在线第一页| 欧美在线视频一二三| 日韩在线观看免费| 国产精品69久久| 欧美日韩成人在线视频| 欧美怡春院一区二区三区| 色午夜这里只有精品| 日韩人在线观看| 影音先锋欧美在线资源| 日本欧美爱爱爱| 在线播放国产精品| 亚洲午夜色婷婷在线| 亚洲精品丝袜日韩| 亚洲美女黄色片| 97超碰国产精品女人人人爽| 高清欧美性猛交xxxx黑人猛交| 97av在线播放| 海角国产乱辈乱精品视频| 成人黄色影片在线| 深夜福利亚洲导航| 日韩免费在线播放| 国产成人免费av| 6080yy精品一区二区三区| 亚洲视频在线免费看| 青青在线视频一区二区三区| 国产日韩在线一区| 911国产网站尤物在线观看| 亚洲欧洲成视频免费观看| 国产精品视频xxx| 欧美日韩精品中文字幕|