你的Redis集群真的是高可用的嗎?

背景

我們在客戶機房部署的的Redis是3主3從的集群,共占用3臺服務(wù)器(100,101,102),沒有使用哨兵系統(tǒng),昨天客戶機房按照機器輪著停機維護,先停了100維護,再停101維護,停100的時候還沒啥問題,在100恢復之后再停101的時候我們的后臺服務(wù)突然報could not get resource from jedis poo。硬著腦門排查,寫下這篇博客記錄。

原理

  • 3臺服務(wù)器,分別部署(100機器:master1,slave3)、(101機器:master2,slave1)、(102機器:master3,slave2),master槽位平分,形成集群
  • 停機維護100的時候,master1的slave1把自己設(shè)置為master1,此時的狀態(tài)是(100:宕機)(101:master2,master1),(102:master3,slave2)
  • 100機器恢復之后,原來該機器上的master會變?yōu)閟lave1,此時的狀態(tài)是(100:slave1,slave3),(101:master2,master1),(102:master3,slave2)
  • 停掉101機器之后master1和master2全掛掉,集群中有半數(shù)(2個)master掛掉,那么集群處于fail狀態(tài),也就是Redis不可用。

解決

  • 臨時方案:停機或者宕機恢復后使用redis 的cluster info 查看集群狀態(tài)信息,如果有兩個master位于同一臺機器上,那么kill掉這個master,讓master重新回到原來的機器。
  • 較好方案:master和slave分別占用1臺機器,有資源的條件下可以這樣部署。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 上一篇我們的基本工作已經(jīng)準備完成,這篇我們說重要的安裝過程。 kubernetes 相關(guān)服務(wù)安裝 在 kubern...
    zoluo閱讀 2,294評論 0 6
  • hadoop2集群搭建詳解------------------------天津九安醫(yī)療電子--吳偉 一、需要軟件 ...
    hogface閱讀 2,037評論 1 4
  • 參考方案kubeadm-ha 本文cluster-info部分為原創(chuàng) 禁止master上發(fā)布應用與參考文不同 安裝...
    getsu閱讀 2,581評論 0 3
  • 前言 嘗到k8s甜頭以后,我們就想著應用到生產(chǎn)環(huán)境里去,以提高業(yè)務(wù)迭代效率,可是部署在生產(chǎn)環(huán)境里有一個要求,就是k...
    我的橙子很甜閱讀 13,462評論 0 15
  • 前言 相信Docker技術(shù)大家都有所了解,單個Docker能發(fā)揮的作用畢竟有限,也不便于管理,所以Docker得組...
    CodeSheep閱讀 14,507評論 10 35

友情鏈接更多精彩內(nèi)容