2020-10-13 redis6 哨兵模式-接上一篇

上一篇文章我們講了redis主從節(jié)點(diǎn)的安裝配置,為了實(shí)現(xiàn)客戶端連接的讀寫分離,安裝哨兵sentinel模式;

配置文件sentinel.conf修改

還是先把沒有注釋的配置拷貝出來
sentinel.conf的位置和redis.conf在一起,我這里是/servers/redis-6.0.6/sentinel.conf

[root@localhost redis-6.0.6]#  cat sentinel.conf | grep -v ^# | grep -v ^$ > conf/sentinel.conf
[root@localhost redis-6.0.6]# vim conf/sentinel.conf
port 26379 #運(yùn)行的端口
daemonize yes #是否守護(hù)進(jìn)程
pidfile /var/run/redis-sentinel.pid
logfile "sentinel.log" #日志文件名
dir /tmp #日志的位置
sentinel monitor mymaster 10.1.1.114 6379 2 # Sentinel去監(jiān)視一個(gè)名為mymaster 的主redis實(shí)例,這個(gè)主實(shí)例的IP地址為本機(jī)地址10.1.1.114,端口號為6379,而將這個(gè)主實(shí)例判斷為失效至少需要2個(gè) Sentinel進(jìn)程的同意,只要同意Sentinel的數(shù)量不達(dá)標(biāo),自動(dòng)failover就不會執(zhí)行
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes

配置說明 參考https://www.cnblogs.com/kevingrace/p/9004460.html

啟動(dòng)

[root@localhost redis-6.0.6]# src/redis-sentinel conf/sentinel.conf 
[root@localhost redis-6.0.6]# cat sentinel.log 
24620:X 13 Oct 2020 17:07:23.786 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
24620:X 13 Oct 2020 17:07:23.787 # Redis version=6.0.6, bits=64, commit=00000000, modified=0, pid=24620, just started
24620:X 13 Oct 2020 17:07:23.787 # Configuration loaded
24621:X 13 Oct 2020 17:07:23.792 * Increased maximum number of open files to 10032 (it was originally set to 1024).
24621:X 13 Oct 2020 17:07:23.795 * Running mode=sentinel, port=26379.
24621:X 13 Oct 2020 17:07:23.795 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
24621:X 13 Oct 2020 17:07:23.798 # Sentinel ID is 404a494a8646a734f66a3918603d8d8cfd322365
24621:X 13 Oct 2020 17:07:23.798 # +monitor master mymaster 127.0.0.1 6379 quorum 2
24621:X 13 Oct 2020 17:07:23.810 * +slave slave 10.199.0.254:6379 10.199.0.254 6379 @ mymaster 127.0.0.1 6379

3臺哨兵

  • 因?yàn)橹辽?臺哨兵發(fā)現(xiàn)masterdown機(jī)之后,才能執(zhí)行failover選舉新的master,所以至少要3臺哨兵
  • 按上述步驟,配置10.1.1.114和10.1.1.115的哨兵,注意配置文件中sentinel monitor mymaster 10.1.1.114 6379 2這個(gè)ip地址始終是master 114的地址
    3臺哨兵分別啟動(dòng)
    現(xiàn)在哨兵模式就設(shè)置完成了
    查看哨兵的狀態(tài)
[root@localhost redis-6.0.6]# src/redis-cli -p 26379 # 通過哨兵26379端口進(jìn)行查看
127.0.0.1:26379> info sentinel
Sentinel
sentinel_masters:1 #表示本機(jī)上的sentinel監(jiān)聽了1個(gè)redis master 節(jié)點(diǎn)
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=127.0.0.1:6379,slaves=1,sentinels=3
#此處表示master0的name是mymaster,狀態(tài)ok,地址就是本機(jī),有一個(gè)slaves,有兩個(gè)哨兵在監(jiān)聽這個(gè)主機(jī)

Sentinel 命令
以下列出的是 Sentinel 接受的命令:

PING :返回 PONG 。
SENTINEL masters :列出所有被監(jiān)視的主服務(wù)器,以及這些主服務(wù)器的當(dāng)前狀態(tài)。
SENTINEL slaves <master name>:列出給定主服務(wù)器的所有從服務(wù)器,以及這些從服務(wù)器的當(dāng)前狀態(tài)。
SENTINEL get-master-addr-by-name <master name>: 返回給定名字的主服務(wù)器的 IP 地址和端口號。 如果這個(gè)主服務(wù)器正在執(zhí)行故障轉(zhuǎn)移操作, 或者針對這個(gè)主服務(wù)器的故障轉(zhuǎn)移操作已經(jīng)完成, 那么這個(gè)命令返回新的主服務(wù)器的 IP 地址和端口號。
SENTINEL reset <pattern>: 重置所有名字和給定模式 pattern 相匹配的主服務(wù)器。 pattern 參數(shù)是一個(gè) Glob 風(fēng)格的模式。 重置操作清楚主服務(wù)器目前的所有狀態(tài), 包括正在執(zhí)行中的故障轉(zhuǎn)移, 并移除目前已經(jīng)發(fā)現(xiàn)和關(guān)聯(lián)的, 主服務(wù)器的所有從服務(wù)器和 Sentinel 。
SENTINEL failover <master name> : 當(dāng)主服務(wù)器失效時(shí), 在不詢問其他 Sentinel 意見的情況下, 強(qiáng)制開始一次自動(dòng)故障遷移 (不過發(fā)起故障轉(zhuǎn)移的 Sentinel 會向其他 Sentinel 發(fā)送一個(gè)新的配置,其他 Sentinel 會根據(jù)這個(gè)配置進(jìn)行相應(yīng)的更新)。

模擬down機(jī)

  • 我們在master機(jī)器114上,手動(dòng)shutdown服務(wù)
[root@localhost redis-6.0.6]# src/redis-cli 
127.0.0.1:6379> shutdown
  • 在113從節(jié)點(diǎn)機(jī)器上,查看sentinel日志
[root@localhost redis-6.0.6]# tail -f /tmp/sentinel.log 
2977:X 14 Oct 2020 11:00:33.767 # +sdown master mymaster 10.199.0.114 6379 #一臺發(fā)現(xiàn)down機(jī),主觀down機(jī)
2977:X 14 Oct 2020 11:00:33.855 # +new-epoch 8
2977:X 14 Oct 2020 11:00:33.860 # +vote-for-leader 50f78350077e8289ab5cb4eb443ab64eba997cbf 8 #選舉新的哨兵master,用來處理主從切換,遷移
2977:X 14 Oct 2020 11:00:33.860 # +odown master mymaster 10.199.0.114 6379 #quorum 3/2 #真正odown 客觀down機(jī),準(zhǔn)備主從切換
2977:X 14 Oct 2020 11:00:33.860 # Next failover delay: I will not start a failover before Wed Oct 14 11:06:34 2020
2977:X 14 Oct 2020 11:00:34.199 # +config-update-from sentinel 50f78350077e8289ab5cb4eb443ab64eba997cbf 10.199.0.115 26379 @ mymaster 10.199.0.114 6379
2977:X 14 Oct 2020 11:00:34.199 # +switch-master mymaster 10.199.0.114 6379 10.199.0.115 6379 #把114主節(jié)點(diǎn)切換到115上
2977:X 14 Oct 2020 11:00:34.199 * +slave slave 10.199.0.113:6379 10.199.0.113 6379 @ mymaster 10.199.0.115 6379
2977:X 14 Oct 2020 11:00:34.199 * +slave slave 10.199.0.254:6379 10.199.0.254 6379 @ mymaster 10.199.0.115 6379
2977:X 14 Oct 2020 11:00:34.200 * +slave slave 10.199.0.114:6379 10.199.0.114 6379 @ mymaster 10.199.0.115 6379
2977:X 14 Oct 2020 11:01:04.206 # +sdown slave 10.199.0.114:6379 10.199.0.114 6379 @ mymaster 10.199.0.115 6379
2977:X 14 Oct 2020 11:03:34.694 * +fix-slave-config slave 10.199.0.113:6379 10.199.0.113 6379 @ mymaster 10.199.0.115 6379 #修復(fù)113的配置,relicationOf 改成115
  • 我們登錄115,查看集群replication,可以看到115已經(jīng)升級為主節(jié)點(diǎn)
[root@localhost redis-6.0.6]# src/redis-cli 
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=10.199.0.113,port=6379,state=online,offset=500696,lag=0
master_replid:e8c5a4739fa4d12d8c7917bf596f618fdf7b81ea
master_replid2:4004d23739e1682f41c769ba2d203d31bb4e6373
master_repl_offset:500696
second_repl_offset:119538
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:37310
repl_backlog_histlen:463387
127.0.0.1:6379> 

并且115和113的conf/redis.conf也相應(yīng)的調(diào)整了
另外,114如果再啟動(dòng)的話,必須自己手動(dòng)修改配置,增加replicaOf

推薦一個(gè)介紹redis的博客 http://doc.redisfans.com/topic/sentinel.html,這個(gè)博客把官方的英文文檔翻譯過來,語法表達(dá)都很贊

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,106評論 6 542
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,441評論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,211評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,736評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,475評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,834評論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,829評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,009評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,559評論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,306評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,516評論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,038評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,728評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,132評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,443評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,249評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,484評論 2 379

推薦閱讀更多精彩內(nèi)容