redis?sentinel監(jiān)控高可用集群實現(xiàn)的配置步驟
一、端口轉(zhuǎn)發(fā)
如果在一個主機里面,安裝了兩個redis實例,可以在項目里面配置IP端口,用iptables轉(zhuǎn)發(fā)。
iptables -t nat -A PREROUTING -p tcp --dport 6379 -j REDIRECT --to-ports 7379
當發(fā)生切換的時候,觸發(fā)了腳本,執(zhí)行語句。端口可以馬上轉(zhuǎn)發(fā)帶正確的redis上面。參數(shù)的含義:

腳本配置:

腳本實例:
#!/bin/bash ?iptables?-t?nat?-I?PREROUTING?-p?tcp?--dport?6379?-j?REDIRECT?--to-ports?$7
這樣在項目配置就可以直接使用6379,有什么切換交給iptables轉(zhuǎn)發(fā)。IP轉(zhuǎn)發(fā)也可以用這種方法實現(xiàn)。不能這樣實現(xiàn)的原因是,sentinel和redis都是由不同的容器實現(xiàn)。除非用宿主機安裝的辦法,不然由sentinel執(zhí)行的腳本根本不能控制到宿主機的iptables來選擇redis。
二、修改HOST文件
這種方法和第一種少有不同。就不是從網(wǎng)絡上面改了。項目里面的配置可以直接用主機名。不過這種方法的缺陷是只能改IP,就是說使用的端口號要一致,每次故障只切換IP,不切換端口。
echo "192.168.20.26 redis" >> /etc/hosts
這種方法不能實現(xiàn)的原因是,sentinel和項目執(zhí)行容器獨立,由sentinel執(zhí)行的腳本動不了apache的host文件,除非sentinel和apache共享host文件。這非常麻煩。而且,每個sentinel有執(zhí)行一次,就需要和sentinel一樣數(shù)量的apache容器。
腳本示例:
#!/bin/bash
sed -i 's/$4/$6/g' /etc/hosts
三、用第三方代理haproxy
用這種方法的話,就不管sentinel怎么切換,haproxy只需檢測到可讀寫的redis交給項目就行,而且項目里面配置指向haproxy的IP。

上圖可知haproxy是通過交互發(fā)現(xiàn)master可用,slave都切換為down。haproxy是利用輪詢檢測。

項目的配置:

四、插曲
這里是sentinel檢測redis。如果3個redis,mater掛了,另外一個slave頂上。如果master重啟了,卻沒有加入集群。
問題就在這里,1的狀態(tài)都知道2是master,2確不知道有1這個slave。那就是1和2沒有通訊了。
1、初始狀態(tài):

2、初始master:

3、關掉1,

4、2切換為master:

5、master狀態(tài):

6、重啟1的狀態(tài):

1啟動之后,馬上變?yōu)閙aster,但是沒有slave,后面切換回slave,他的master是2.。就是說1是master,2、3都是slave,1的狀態(tài)可以看到2、3的存在。1掛了,2就是master,3還是slave。1重啟了就應該是slave,1的狀態(tài)也說他的master是2,但是2說他只有3這一個slave。
7、查看sentinel的切換日志

第一行,說明檢測到1已經(jīng)掛了。
第二行,移除掛了這個狀態(tài),即是1已經(jīng)恢復。
第三行,把1轉(zhuǎn)變?yōu)閟lave,master為2.
這個日志說明出問題不在sentinel,因為他已經(jīng)完成了使命。
8、查看1的日志

這個日志說明1想去連接,但是認證失敗。
9、我們?nèi)ジ膔edis的配置

10、檢查后一切正常
以上就是redis sentinel監(jiān)控高可用集群實現(xiàn)的配置步驟的詳細內(nèi)容,更多關于redis sentinel監(jiān)控高可用集群的資料請關注腳本之家其它相關文章!
相關文章
Redis?使用?List?實現(xiàn)消息隊列的優(yōu)缺點
這篇文章主要介紹了Redis?使用?List?實現(xiàn)消息隊列有哪些利弊,小編結(jié)合消息隊列的特點一步步帶大家分析使用?Redis?的?List?作為消息隊列的實現(xiàn)原理,并分享如何把?SpringBoot?與?Redission?整合運用到項目中,需要的朋友可以參考下2022-01-01
redis發(fā)布訂閱_動力節(jié)點Java學院整理
這篇文章主要介紹了redis發(fā)布訂閱,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08

