中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

重慶市建設(shè)醫(yī)院網(wǎng)站首頁西點培訓(xùn)前十名學(xué)校

重慶市建設(shè)醫(yī)院網(wǎng)站首頁,西點培訓(xùn)前十名學(xué)校,平面設(shè)計平臺有哪些,網(wǎng)站制作和美工Redis哨兵集群搭建及其原理 1.Redis哨兵1.1.哨兵原理1.1.1.集群結(jié)構(gòu)和作用1.1.2.集群監(jiān)控原理1.1.3.集群故障恢復(fù)原理1.1.4.小結(jié) 2.搭建哨兵集群2.1.集群結(jié)構(gòu)2.2.準(zhǔn)備實例和配置2.3.啟動2.4.測試 3.RedisTemplate3.1.引入依賴3.2.配置Redis地址3.3.配置讀寫分離 1.Redis哨兵 R…

Redis哨兵集群搭建及其原理

  • 1.Redis哨兵
    • 1.1.哨兵原理
      • 1.1.1.集群結(jié)構(gòu)和作用
      • 1.1.2.集群監(jiān)控原理
      • 1.1.3.集群故障恢復(fù)原理
      • 1.1.4.小結(jié)
  • 2.搭建哨兵集群
    • 2.1.集群結(jié)構(gòu)
    • 2.2.準(zhǔn)備實例和配置
    • 2.3.啟動
    • 2.4.測試
  • 3.RedisTemplate
    • 3.1.引入依賴
    • 3.2.配置Redis地址
    • 3.3.配置讀寫分離

1.Redis哨兵

Redis提供了哨兵(Sentinel)機(jī)制來實現(xiàn)主從集群的自動故障恢復(fù)。

1.1.哨兵原理

1.1.1.集群結(jié)構(gòu)和作用

哨兵的結(jié)構(gòu)如圖:

在這里插入圖片描述

哨兵的作用如下:

  • 監(jiān)控:Sentinel 會不斷檢查您的master和slave是否按預(yù)期工作
  • 自動故障恢復(fù):如果master故障,Sentinel會將一個slave提升為master。當(dāng)故障實例恢復(fù)后也以新的master為主
  • 通知:Sentinel充當(dāng)Redis客戶端的服務(wù)發(fā)現(xiàn)來源,當(dāng)集群發(fā)生故障轉(zhuǎn)移時,會將最新信息推送給Redis的客戶端

1.1.2.集群監(jiān)控原理

Sentinel基于心跳機(jī)制監(jiān)測服務(wù)狀態(tài),每隔1秒向集群的每個實例發(fā)送ping命令:

?主觀下線:如果某sentinel節(jié)點發(fā)現(xiàn)某實例未在規(guī)定時間響應(yīng),則認(rèn)為該實例主觀下線。

?客觀下線:若超過指定數(shù)量(quorum)的sentinel都認(rèn)為該實例主觀下線,則該實例客觀下線。quorum值最好超過Sentinel實例數(shù)量的一半。

在這里插入圖片描述

1.1.3.集群故障恢復(fù)原理

一旦發(fā)現(xiàn)master故障,sentinel需要在salve中選擇一個作為新的master,選擇依據(jù)是這樣的:

  • 首先會判斷slave節(jié)點與master節(jié)點斷開時間長短,如果超過指定值(down-after-milliseconds * 10)則會排除該slave節(jié)點
  • 然后判斷slave節(jié)點的slave-priority值,越小優(yōu)先級越高,如果是0則永不參與選舉
  • 如果slave-prority一樣,則判斷slave節(jié)點的offset值,越大說明數(shù)據(jù)越新,優(yōu)先級越高
  • 最后是判斷slave節(jié)點的運行id大小,越小優(yōu)先級越高。

當(dāng)選出一個新的master后,該如何實現(xiàn)切換呢?

流程如下:

  • sentinel給備選的slave1節(jié)點發(fā)送slaveof no one命令,讓該節(jié)點成為master
  • sentinel給所有其它slave發(fā)送slaveof 192.168.150.101 7002 命令,讓這些slave成為新master的從節(jié)點,開始從新的master上同步數(shù)據(jù)。
  • 最后,sentinel將故障節(jié)點標(biāo)記為slave,當(dāng)故障節(jié)點恢復(fù)后會自動成為新的master的slave節(jié)點

在這里插入圖片描述

1.1.4.小結(jié)

Sentinel的三個作用是什么?

  • 監(jiān)控
  • 故障轉(zhuǎn)移
  • 通知

Sentinel如何判斷一個redis實例是否健康?

  • 每隔1秒發(fā)送一次ping命令,如果超過一定時間沒有相向則認(rèn)為是主觀下線
  • 如果大多數(shù)sentinel都認(rèn)為實例主觀下線,則判定服務(wù)下線

故障轉(zhuǎn)移步驟有哪些?

  • 首先選定一個slave作為新的master,執(zhí)行slaveof no one
  • 然后讓所有節(jié)點都執(zhí)行slaveof 新master
  • 修改故障節(jié)點配置,添加slaveof 新master

2.搭建哨兵集群

2.1.集群結(jié)構(gòu)

這里我們搭建一個三節(jié)點形成的Sentinel集群,來監(jiān)管之前的Redis主從集群。如圖:

在這里插入圖片描述

三個sentinel實例信息如下:

節(jié)點IPPORT
s1192.168.150.10127001
s2192.168.150.10127002
s3192.168.150.10127003

2.2.準(zhǔn)備實例和配置

要在同一臺虛擬機(jī)開啟3個實例,必須準(zhǔn)備三份不同的配置文件和目錄,配置文件所在目錄也就是工作目錄。

我們創(chuàng)建三個文件夾,名字分別叫s1、s2、s3:

# 進(jìn)入/tmp目錄
cd /tmp
# 創(chuàng)建目錄
mkdir s1 s2 s3

如圖:

在這里插入圖片描述

然后我們在s1目錄創(chuàng)建一個sentinel.conf文件,添加下面的內(nèi)容:

port 27001
sentinel announce-ip 192.168.150.101
sentinel monitor mymaster 192.168.150.101 7001 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
dir "/tmp/s1"

解讀:

  • port 27001:是當(dāng)前sentinel實例的端口
  • sentinel monitor mymaster 192.168.150.101 7001 2:指定主節(jié)點信息
    • mymaster:主節(jié)點名稱,自定義,任意寫
    • 192.168.150.101 7001:主節(jié)點的ip和端口
    • 2:選舉master時的quorum值

然后將s1/sentinel.conf文件拷貝到s2、s3兩個目錄中(在/tmp目錄執(zhí)行下列命令):

# 方式一:逐個拷貝
cp s1/sentinel.conf s2
cp s1/sentinel.conf s3
# 方式二:管道組合命令,一鍵拷貝
echo s2 s3 | xargs -t -n 1 cp s1/sentinel.conf

修改s2、s3兩個文件夾內(nèi)的配置文件,將端口分別修改為27002、27003:

sed -i -e 's/27001/27002/g' -e 's/s1/s2/g' s2/sentinel.conf
sed -i -e 's/27001/27003/g' -e 's/s1/s3/g' s3/sentinel.conf

2.3.啟動

為了方便查看日志,我們打開3個ssh窗口,分別啟動3個redis實例,啟動命令:

# 第1個
redis-sentinel s1/sentinel.conf
# 第2個
redis-sentinel s2/sentinel.conf
# 第3個
redis-sentinel s3/sentinel.conf

啟動后:

在這里插入圖片描述

2.4.測試

嘗試讓master節(jié)點7001宕機(jī),查看sentinel日志:

在這里插入圖片描述

查看7003的日志:

在這里插入圖片描述

查看7002的日志:

在這里插入圖片描述

3.RedisTemplate

在Sentinel集群監(jiān)管下的Redis主從集群,其節(jié)點會因為自動故障轉(zhuǎn)移而發(fā)生變化,Redis的客戶端必須感知這種變化,及時更新連接信息。Spring的RedisTemplate底層利用lettuce實現(xiàn)了節(jié)點的感知和自動切換。

下面,我們通過一個測試來實現(xiàn)RedisTemplate集成哨兵機(jī)制。

3.1.引入依賴

在項目的pom文件中引入依賴:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

3.2.配置Redis地址

然后在配置文件application.yml中指定redis的sentinel相關(guān)信息:

spring:redis:sentinel:master: mymasternodes:- 192.168.150.101:27001- 192.168.150.101:27002- 192.168.150.101:27003

3.3.配置讀寫分離

在項目的啟動類中,添加一個新的bean:

@Bean
public LettuceClientConfigurationBuilderCustomizer clientConfigurationBuilderCustomizer(){return clientConfigurationBuilder -> clientConfigurationBuilder.readFrom(ReadFrom.REPLICA_PREFERRED);
}

這個bean中配置的就是讀寫策略,包括四種:

  • MASTER:從主節(jié)點讀取
  • MASTER_PREFERRED:優(yōu)先從master節(jié)點讀取,master不可用才讀取replica
  • REPLICA:從slave(replica)節(jié)點讀取
  • REPLICA _PREFERRED:優(yōu)先從slave(replica)節(jié)點讀取,所有的slave都不可用才讀取master
http://m.risenshineclean.com/news/63620.html

相關(guān)文章:

  • 深圳網(wǎng)站開發(fā)公司 有哪些seo入門培訓(xùn)課程
  • 做汽車網(wǎng)站開題報告的意義微信crm系統(tǒng)
  • wordpress tab切換怎么做好seo推廣
  • 宜春網(wǎng)站建設(shè)公司哪家好公司網(wǎng)站建設(shè)服務(wù)機(jī)構(gòu)
  • 做網(wǎng)站還 淘寶百度引擎的搜索方式是什么
  • 瀏陽做網(wǎng)站的公司價格我贏seo
  • 做自媒體有哪些素材網(wǎng)站廣州品牌營銷服務(wù)
  • 怎樣在網(wǎng)站上做營業(yè)執(zhí)照公示滕州今日頭條新聞
  • 網(wǎng)站設(shè)計標(biāo)準(zhǔn)尺寸電商平臺開發(fā)需要多少錢
  • 濰坊網(wǎng)站建設(shè)價格深圳百度推廣客服
  • wordpress后臺管理面板的主題搜索引擎優(yōu)化論文
  • java 做直播網(wǎng)站有哪些軟件有哪些最新app推廣項目平臺
  • 廈門市網(wǎng)站建設(shè)寧波專業(yè)seo服務(wù)
  • wordpress頁面添加圖片優(yōu)化排名案例
  • 石家莊做網(wǎng)站多少錢百度注冊頁面
  • 深圳做棋牌網(wǎng)站建設(shè)哪家公司收費合理網(wǎng)絡(luò)營銷外包
  • 廣州網(wǎng)絡(luò)推廣有限公司滎陽seo推廣
  • 自己怎么做網(wǎng)站賣車bt種子bt天堂
  • 電子政務(wù)網(wǎng)站建設(shè)公司排行榜引擎搜索網(wǎng)站
  • 物理結(jié)構(gòu)網(wǎng)站怎么看app的下載網(wǎng)址
  • 網(wǎng)站建設(shè)新聞資訊無錫seo網(wǎng)站排名
  • 電腦視頻制作軟件seo在線優(yōu)化
  • qq開放平臺網(wǎng)站開發(fā)申請不通過的原因制作網(wǎng)站推廣
  • 什么網(wǎng)站可以做美食寧波網(wǎng)絡(luò)營銷推廣咨詢報價
  • 深圳網(wǎng)站營銷推廣公司電話網(wǎng)絡(luò)推廣怎么找客戶資源
  • 保康縣城鄉(xiāng)建設(shè)路網(wǎng)站怎么有自己的網(wǎng)站
  • 網(wǎng)站建設(shè)的客戶在哪里山西seo關(guān)鍵詞優(yōu)化軟件搜索
  • 深圳網(wǎng)站建設(shè)(信科網(wǎng)絡(luò))大數(shù)據(jù)營銷軟件
  • jizhicmsseo排名是什么意思
  • 在常熟市公司網(wǎng)站建設(shè)哪家好蘇州seo安嚴(yán)博客