亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享

(三)分布式緩存——Redis哨兵機制

2022-06-29 10:38:16
18
0

分布式緩存——Redis哨兵機制

一、哨兵的作用和原理:

1、哨兵機制的作用:

Redis提供了哨(shao)兵(Sentinel)機制來實現主(zhu)從集群的(de)(de)master、slave的(de)(de)自動故障恢復。哨(shao)兵的(de)(de)結構和(he)作用如下:

作用——監控: Sentinel 會不斷檢查您的master和slave是否按預期工作。

作用——自動故障恢復: 如果master故障,Sentinel會將一個slave提升為master。當故障實例恢復后也以新的master為主。

作用——通知: Sentinel充當Redis客戶端的服務發現來源,當集群發生故障轉移時,會將最新信息推送給Redis的客戶端,比如告訴客戶端master節點變更了,這樣客戶端寫數據的時候才不會找錯節點。

在這里插入圖片描述

 

2、哨兵(bing)如何監測節點的狀態:

Sentinel基于(yu)心跳機制監測服務狀(zhuang)態,每隔1秒(miao)向集群的每個實例發送ping命令:

主觀下線(xian):如果某(mou)sentinel節點發現某(mou)實例未(wei)在規定(ding)時間(jian)響應,則認為該(gai)實例主觀下線(xian)。

客(ke)觀下線:若超(chao)過(guo)指定(ding)數量(quorum)的sentinel都認(ren)為該(gai)實(shi)例主觀下線,則該(gai)實(shi)例客(ke)觀下線。quorum值最好超(chao)過(guo)Sentinel實(shi)例數量的一半。

在這里插入圖片描述

 

3、哨兵如(ru)何選舉新的master:

選舉的依據:

 

  1. 首先會(hui)(hui)判(pan)斷slave節(jie)點(dian)與master節(jie)點(dian)斷開時(shi)間長(chang)短,如果超過指定(ding)值(zhi)(down-after-milliseconds * 10)則會(hui)(hui)排除該slave節(jie)點(dian);
  2. 然(ran)后判斷slave節點的slave-priority值,越小優先(xian)級越高,如果(guo)是0則永不參與(yu)選(xuan)舉;
  3. 如(ru)果slave-prority一樣,則判斷slave節點(dian)的offset值,越(yue)大說(shuo)明(ming)數(shu)據(ju)越(yue)新,優先(xian)級越(yue)高;
  4. 最后(hou)是判斷slave節點的運行(xing)id大小(xiao)(xiao),越小(xiao)(xiao)優先級越高(gao)

 

4、哨(shao)兵如何實現故障(zhang)轉移:

  1. sentinel給備選的slave1節點(dian)發送slaveof no one命令,讓(rang)該節點(dian)成為(wei)master;
  2. sentinel給(gei)所有(you)其它(ta)slave發(fa)送slaveof slave1 ip slave1 端口(kou)命令,讓這些slave成(cheng)為(wei)新(xin)master的(de)從節(jie)點,開(kai)(kai)始從新(xin)的(de)master上同步(bu)數據(一開(kai)(kai)始還是進(jin)行全(quan)量同步(bu));
  3. 最后,sentinel強行給故(gu)障節點標記為slave(修改配置文件),當故(gu)障節點恢(hui)復后會自動成(cheng)為新的master的slave節點。

 

5、總結:

在這里插入圖片描述

 

二(er)、RedisTemplate的(de)哨兵模式:

在Sentinel集群監管下的(de)(de)Redis主(zhu)從(cong)集群,其節(jie)點(dian)會因為自(zi)動故障轉移而發生變化,Redis的(de)(de)客(ke)戶端必須感(gan)知這(zhe)種變化,及(ji)時更新連(lian)接(jie)信息。Spring的(de)(de)RedisTemplate底層利(li)用lettuce實(shi)現了節(jie)點(dian)的(de)(de)感(gan)知和自(zi)動切換。

RedisTemplate和Sentinel的整合:

配(pei)(pei)置(zhi)文件不(bu)需要配(pei)(pei)置(zhi)redis的地址(zhi),因為這(zhe)個(ge)地址(zhi)也(ye)是不(bu)確(que)定的,只需要配(pei)(pei)置(zhi)好Sentinel的地址(zhi)就可以了;客戶端會根據(ju)地址(zhi)找到(dao)Sentinel,從而得(de)知(zhi)redis的地址(zhi)以及(ji)主從情況。

在這里插入圖片描述

在這里插入圖片描述

————————————————

版權(quan)聲(sheng)明:本文為CSDN博主「方方土^_^」的原(yuan)創文章,遵循CC 4.0 BY-SA版權(quan)協議(yi),轉(zhuan)載請附(fu)上(shang)原(yuan)文出處鏈接(jie)及本聲(sheng)明。

原文鏈接(jie)://blog.csdn.net/weixin_44792186/article/details/122907401

0條評論
0 / 1000
我是小朋友
80文章數
6粉絲(si)數(shu)
我是小朋友
80 文章 | 6 粉絲(si)

(三)分布式緩存——Redis哨兵機制

2022-06-29 10:38:16
18
0

分布式緩(huan)存——Redis哨兵(bing)機制

一(yi)、哨兵的作用和(he)原理:

1、哨兵機制的作用:

Redis提供(gong)了哨(shao)(shao)兵(Sentinel)機制來實現(xian)主從集(ji)群的(de)master、slave的(de)自動故障恢復(fu)。哨(shao)(shao)兵的(de)結構和作用(yong)如下:

作用——監控: Sentinel 會不斷檢查您的master和slave是否按預期工作。

作用——自動故障恢復: 如果master故障,Sentinel會將一個slave提升為master。當故障實例恢復后也以新的master為主。

作用——通知: Sentinel充當Redis客戶端的服務發現來源,當集群發生故障轉移時,會將最新信息推送給Redis的客戶端,比如告訴客戶端master節點變更了,這樣客戶端寫數據的時候才不會找錯節點。

在這里插入圖片描述

 

2、哨兵如(ru)何監(jian)測節(jie)點(dian)的狀態:

Sentinel基于(yu)心跳機(ji)制監測(ce)服務狀態,每隔(ge)1秒向集群的每個(ge)實(shi)例發送(song)ping命(ming)令:

主觀下線(xian):如果某sentinel節點(dian)發現某實例(li)未在規(gui)定(ding)時間響(xiang)應(ying),則認(ren)為該實例(li)主觀下線(xian)。

客觀下(xia)線:若(ruo)超(chao)過指定數(shu)量(quorum)的(de)sentinel都認為該實(shi)(shi)(shi)例主觀下(xia)線,則該實(shi)(shi)(shi)例客觀下(xia)線。quorum值最好超(chao)過Sentinel實(shi)(shi)(shi)例數(shu)量的(de)一半。

在這里插入圖片描述

 

3、哨兵如(ru)何選舉新(xin)的master:

選舉(ju)的(de)依據:

 

  1. 首(shou)先會(hui)判斷slave節點與master節點斷開時(shi)間長短(duan),如果超過(guo)指(zhi)定值(down-after-milliseconds * 10)則會(hui)排除該slave節點;
  2. 然(ran)后判斷slave節點的slave-priority值,越(yue)小優先級越(yue)高,如果(guo)是0則永(yong)不(bu)參與(yu)選舉;
  3. 如(ru)果(guo)slave-prority一樣,則判(pan)斷slave節點的offset值,越(yue)大說明(ming)數據越(yue)新,優先級越(yue)高;
  4. 最(zui)后是判斷slave節點的運行(xing)id大小(xiao),越小(xiao)優先級(ji)越高(gao)

 

4、哨兵(bing)如何實現故障轉移:

  1. sentinel給(gei)備選的slave1節點(dian)發送slaveof no one命(ming)令,讓該(gai)節點(dian)成(cheng)為master;
  2. sentinel給所有其它slave發送(song)slaveof slave1 ip slave1 端(duan)口命令,讓這些slave成為新(xin)master的從節點,開始(shi)從新(xin)的master上(shang)同(tong)(tong)步數據(一(yi)開始(shi)還(huan)是進行全量同(tong)(tong)步);
  3. 最后(hou),sentinel強(qiang)行給故(gu)障節(jie)(jie)點(dian)標(biao)記為slave(修改配(pei)置文件(jian)),當故(gu)障節(jie)(jie)點(dian)恢復(fu)后(hou)會(hui)自動成為新的master的slave節(jie)(jie)點(dian)。

 

5、總(zong)結:

在這里插入圖片描述

 

二、RedisTemplate的哨兵模式:

在Sentinel集(ji)(ji)群監(jian)管下的Redis主(zhu)從集(ji)(ji)群,其(qi)節(jie)點會(hui)因為自(zi)動故障(zhang)轉(zhuan)移而發生變化,Redis的客(ke)戶(hu)端必須感知這種(zhong)變化,及時更新連接信息。Spring的RedisTemplate底層利用(yong)lettuce實現了節(jie)點的感知和自(zi)動切換。

RedisTemplate和Sentinel的整合:

配(pei)置文件(jian)不需要配(pei)置redis的(de)地(di)址(zhi)(zhi),因(yin)為這個地(di)址(zhi)(zhi)也是(shi)不確(que)定的(de),只需要配(pei)置好Sentinel的(de)地(di)址(zhi)(zhi)就(jiu)可以(yi)了;客戶端(duan)會根據(ju)地(di)址(zhi)(zhi)找到Sentinel,從(cong)(cong)而得知redis的(de)地(di)址(zhi)(zhi)以(yi)及(ji)主從(cong)(cong)情(qing)況。

在這里插入圖片描述

在這里插入圖片描述

————————————————

版權聲明:本(ben)文為CSDN博(bo)主(zhu)「方方土^_^」的原創文章(zhang),遵(zun)循CC 4.0 BY-SA版權協議,轉載(zai)請附上(shang)原文出處鏈接(jie)及本(ben)聲明。

原(yuan)文鏈接://blog.csdn.net/weixin_44792186/article/details/122907401

文章來自個人專欄
文章(zhang) | 訂閱
0條評論
0 / 1000
請輸入你的評論
0
0