Redis Sentinel部署規則和API使用

2021-10-07 06:20:10 字數 3208 閱讀 5775

redis sentinel可以同時監控多個主節點, 具體拓撲圖類似於圖。配置方法也比較簡單, 只需要指定多個mastername來區分不同的主節點即可, 例如下面的配置監控monitor master-business-1(10.10.xx.1: 6379) 和monitor master-business-2(10.10.xx.2: 6379) 兩個主節點:

和普通的redis資料節點一樣, sentinel節點也支援動態地設定引數, 而且和普通的redis資料節點一樣並不是支援所有的引數, 具體使用方法如下:

有幾點需要注意一下:

1) sentinel set命令只對當前sentinel節點有效。

2) sentinel set命令如果執行成功會立即重新整理配置檔案, 這點和redis普通資料節點設定配置需要執行config rewrite重新整理到配置檔案不同。

3) 建議所有sentinel節點的配置盡可能一致, 這樣在故障發現和轉移時比較容易達成一致。

4) 表9-3中為sentinel set支援的引數, 具體可以參考原始碼中的sentinel.c的sentinelsetcommand函式。

5) sentinel對外不支援config命令。

到現在有關redis sentinel的配置和部署方法相信讀者已經基本掌握了,但在實際生產環境中都有哪些部署的技巧? 本節將總結一下。

1) sentinel節點不應該部署在一台物理「機器」上

這裡特意強調物理機是因為一台物理機做成了若干虛擬機器或者現今比較

流行的容器, 它們雖然有不同的ip位址, 但實際上它們都是同一臺物理機,同一臺物理機意味著如果這台機器有什麼硬體故障, 所有的虛擬機器都會受到影響, 為了實現sentinel節點集合真正的高可用, 請勿將sentinel節點部署在同一臺物理機器上。

2) 部署至少三個且奇數個的sentinel節點

3個以上是通過增加sentinel節點的個數提高對於故障判定的準確性, 因為領導者選舉需要至少一半加1個節點, 奇數個節點可以在滿足該條件的基礎上節省乙個節點。 

3) 只有一套sentinel, 還是每個主節點配置一套sentinel?

sentinel節點集合可以只監控乙個主節點, 也可以監控多個主節點, 也就意味著部署拓撲可能是如圖兩種情況。

那麼在實際生產環境中更偏向於哪一種部署方式呢, 下面分別分析兩種方案的優缺點。

方案一: 一套sentinel, 很明顯這種方案在一定程度上降低了維護成本, 因為只需要維護固定個數的sentinel節點, 集中對多個redis資料節點進行管理就可以了。 但是這同時也是它的缺點, 如果這套sentinel節點集合出現異常, 可能會對多個redis資料節點造成影響。 還有如果監控的redis資料節點較多, 會造成sentinel節點產生過多的網路連線, 也會有一定的影響。

方案二: 多套sentinel, 顯然這種方案的優點和缺點和上面是相反的,每個redis主節點都有自己的sentinel節點集合, 會造成資源浪費。 但是優點也很明顯, 每套redis sentinel都是彼此隔離的。

sentinel節點是乙個特殊的redis節點, 它有自己專屬的api,以圖進行說明: sentinel節點集合監控著兩組主從模式的redis資料節點。

.........忽略............

2) 1) "name"

2) "mymaster-1"

3) "ip"

4) "127.0.0.1"

5) "port"

6) "6379"

.........忽略............

2.sentinel master

127.0.0.1:26379> sentinel master mymaster-1

1) "name"

2) "mymaster-1"

3) "ip"

4) "127.0.0.1"

5) "port"

6) "6379"

.........忽略............

Redis Sentinel 哨兵模式

目錄經過上期 redis 主從複製 的學習,我們知道主從複製是為了避免單點故障,將資料儲存在多台伺服器上的一種機制。但是主節點只有乙個,如果主節點掛掉了,怎麼辦?於是哨兵模式誕生了。哨兵模式可以不時地監控redis是否按照預期良好的執行 至少是保證主節點是存在的 若一台主機出現問題,哨兵會自動將該主...

Redis Sentinel 哨兵 集群解決方案

size x large color black b redis 哨兵的服務框架 b color size 哨兵也是 redis 伺服器,只是它與我們平時提到的 redis 伺服器職能不同,哨兵負責監視普通的 redis 伺服器,提高乙個伺服器集群的健壯和可靠性。哨兵和普通的 redis 伺服器所用...

docker部署部署心得

一 涉及檔案 centos centos7.tar.gz docker中centos映象壓縮包 docker.tar.gz docker 安裝包 jre 8u131 linux x64.rpm 生成cloudlicense映象時要用到 由於找不到openjdk,安裝映象,用這個替代 dockerfi...