標籤:style blog http color 使用 strong 檔案 sp div
Sentinel的目的:監視主從伺服器,並在主伺服器下線時自動進行容錯移轉
啟動Sentinel
通過執行Redis安裝檔案中的redis-sentinel程式,可以啟動一個Sentinel執行個體:
redis-sentinel sentinel.conf
因為Redis的Sentinel實際上就是一個運行在Sentinel模式下的Redis伺服器,所以我們同樣可以使用以下命令來啟動一個Sentinel執行個體
redis-server sentinel.conf --sentinel
啟動Sentinel時需要指定設定檔,該檔案記錄了要監視的主伺服器,以及相關的配置參數。
使用Sentinel監視主從伺服器以及它的從伺服器
每個Sentinel執行個體可以監視任意多個主伺服器,以及被監視的主伺服器屬下的所有從伺服器。
Sentinel網路
多個Sentinel執行個體可以監視同一個主伺服器,監視相同主伺服器的這些Sentinel會自動地相互串連,組成一個分布式的Sentinel網路,互相通訊並交換彼此關於被監視伺服器的資訊。
伺服器下線判斷
當一個Sentinel認為被監視伺服器已經下線時,它會向網路中的其他Sentinel進行確認,判斷該伺服器是否真的已經下線;
如果下線的伺服器為主伺服器,那麼Sentinel網路將對下線主伺服器進行自動容錯移轉:通過將下線主伺服器的某個從伺服器提升為新的伺服器,並讓其他從伺服器轉為複製新的主伺服器,並以此來讓系統重新回到上線狀態。
自動容錯移轉
下線主伺服器重新上線
Sentinel的配置
監視配置選項
Sentinel在啟動時必須指定相應的設定檔:
redis-sentinel sentinel.conf
一個Sentinel設定檔至少要包含一個監視配置選項,使用者指定被監視主伺服器的相關資訊
sentinel monitor <name> <ip> <port> <quorum>
name:使用者為被監視主伺服器設定的名字;
ip:被監視主伺服器的ip;
port:被監視主伺服器的port;
quorum:為確認這個主伺服器已下線所需要的最少Sentinel數量;
舉個栗子:配置sentinel monitor hadoop000 127.0.0.1 6379 2
表示要監視的主伺服器的名字為hadoop000,它的ip地址是127.0.0.1,連接埠號碼為6379,而確認這個伺服器已下線最少需要兩個Sentinel同意;
Sentinel可以自動探索並監視主伺服器屬下的所有從伺服器,所以使用者只需要給出主伺服器的地址和連接埠號碼即可。
連接埠配置選項
如果要在同一台機器上運行多個Sentinel執行個體,使用者還需要通過port number選項來為每個sentinel設定不同的連接埠號碼,如果不進行設定,Sentinel預設連接埠號碼為26379;
舉個栗子:
如果要在同一台機器上運行兩個Sentinel執行個體,使用者可以通過載入以下兩個設定檔來分別將兩個Sentinel執行個體的連接埠號碼設定為26379和26380:
# sentinel1.confport 26379sentinel monitor …# sentinel2.confport 26380sentinel monitor …
Sentinel配置執行個體
執行如下兩條命令,將建立2個監視主伺服器S1的sentinel執行個體:
$ redis-sentinel sentinel1.conf$ redis-sentinel sentinel2.conf
其中sentinel1.conf的內容為:
port 26379sentinel monitor s1 127.0.0.1 6379 2
而sentinel2.conf的內容為:
port 26380sentinel monitor s1 127.0.0.1 6379 2
Redis多機功能之Sentinel