redis的sentinel mode

上篇文章我們說了replication的一主二從複製和鏈式複製。

但這都是不可行的,因爲它要你去手動設置老大(當主機掛掉之後),這會帶來業務的停止。

所以,我們引入了哨兵模式。

哨兵就是一個進程,它會站崗,然後監視着master的活動。如果哨兵覺得master已經死了,那他就會根據算法自動選一個老大。這是哨兵智能的地方。

如果要佈置哨兵集羣的話,哨兵們會進行投票來選老大。


既然哨兵是一個進程,所以我們肯定要啓動它:

在redis的目錄下,還有sentinel的配置文件:

這裏面的內容非常多。

我們這次實現一個最簡單版的。

我們自定義一個配置文件sentinel.conf,裏面只有一行:

sentinel monitor mymaster 127.0.0.1 6379 1

mymaster是一個名字,可以隨便取。然後監控的是127.0.0.1 6379,從節點不用寫,sentinel會自動監測到。後面那個1表示需要有多少個sentinel同意才能選出主節點。因爲我們這裏只有一個sentinel,那就寫1就行了。


啓動sentinel:

還是一樣,我們讓6379爲master,6380和6381爲slave。

現在我讓6379停掉,30秒之後就會有日誌出來:

6380自動被選爲master了:

6381自動跟着6380混了:

而且我們自定義的配置文件也發生了變化:

如果此時6379再回來,它會自動成爲6380的slave:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章