REDIS集群腦裂以及解決方案


 關於reids集群會由於網絡等原因出現腦裂的情況,所謂的集群腦裂就是,由於redis master節點和redis salve節點和sentinel處於不同的網絡分區,使得sentinel沒有能夠心跳感知到master,所以通過選舉的方式提升了一個salve為master,這樣就存在了兩個master,就像大腦分裂了一樣,這樣會導致客戶端還在old master那里寫入數據,新節點無法同步數據,當網絡恢復后,sentinel會將old master降為salve,這時再從新master同步數據,這會導致大量數據丟失。

   解決方案:

    redis中有兩個配置參數:

    (舊版本)

      min-slaves-to-write 3

      min-slaves-max-lag 10

    (新版本)

      min-replicas-to-write 3

      min-replicas-max-lag 10

  第一個參數表示最少的salve節點為3個,第二個參數表示數據復制和同步的延遲不能超過10秒

    配置了這兩個參數:如果發生腦裂:原master會在客戶端寫入操作的時候拒絕請求。這樣可以避免大量數據丟失。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM