1. 程式人生 > >sentinel搭建redis叢集的注意事項

sentinel搭建redis叢集的注意事項

一、protected-mode

預設情況下,redis node和sentinel的protected-mode都是yes,在搭建叢集時,若想從遠端連線redis叢集,需要將redis node和sentinel的protected-mode修改為no,若只修改redis node,從遠端連線sentinel後,依然是無法正常使用的,且sentinel的配置檔案中沒有protected-mode配置項,需要手工新增。

依據redis文件的說明,若protected-mode設定為no後,需要增加密碼證或是IP限制等保護機制,否則是極度危險的。

二、sentinel提供的master ip

sentinel儲存著所有可用node的IP,jedis pool通過sentinel來獲取redis的可用master ip來建立連線池連線,這裡有一個很坑的地方,若sentinel和redis node部署在同一臺伺服器,sentinel監控的master ip不能寫成127.0.0.1,需要寫成真實IP。

sentinel在對外管理MASTER IP時,只是簡單的將配置檔案中的IP儲存,而不會在對外提供服務時,動態轉換為127.0.0.1所在機器的真實IP

三、sentinel不共享配置

每一個sentinel結點,各自儲存自己的配置資訊,這在搭建叢集時,容易出現某一個sentinel結點配置和其它不一致而導致的詭異系統問題。

jedis pool在連線到sentinel列表後,會從第一個可用的sentinel結點獲取redis叢集的資訊,來構建pool,這樣就可能會導致構建異常

四、叢集狀態ODOWN

ODOWN是sentinel認為整個叢集不可用。有一種情況導致的ODOWN是由於配置不當導致,而非真的叢集不可用。

sentienl會根據配置檔案中的master IP和端品來獲取整個叢集的初始狀態(包括MASTER結點是否可用,以及所有SLAVE結點的狀態),某此時sentienl中的master配置和叢集狀態中的真正master不匹配時,sentinel就認為叢集不可用。叢集在master後掛掉後,sentinel會進行failover處理 ,若failover後,很不幸所有sentinel都掛了,再重啟後的sentinel就會因為找不到master,而認為叢集ODOWN