2016-11-23 53 views
0

開始學習RedisLabs企業集羣,但我對如何使用RLEC實現高可用性感到困惑。我瞭解RLEC使用專有複製,這與開源Redis不同。我想實現的是,如果我的主數據庫發生故障,我的應用程序仍然可以正常工作,通過連接到副本數據庫。如何實施Redislabs企業集羣高可用性?

我的問題是:

  1. 我已經創建了2個節點。如果我創建了一個名爲testing並啓用了複製的新Redis DB,其中哪個節點是主DB(哪一個是從屬的)?端點是否指示當前主設備?

nodes enter image description here

  • 我連接到localhost:在每個服務器19332(如顯示在端點)。爲什麼我能夠從兩臺服務器進行設置? (並且它出現在兩個服務器中)。我認爲複製應該是從主人到奴隸的一種方式?
  • enter image description here

    回答

    2

    我給你幾個高級指針,如果你想獲得更多信息,請聯繫support @ redislabs。com

    對於真正的HA,您的RLEC集羣應該至少有3個節點,因此您應該將另一個節點添加到您的集羣。 創建Redis資源後,只需啓用複製即可將其配置爲HA。

    您只需將您的應用程序連接到UI中提供的端點。如果具有主Redis的節點將關閉,則RLEC將自動提升從屬服務器並將您的應用程序請求重定向到新主服務器。

    請注意,您確實需要配置DNS,並且您的羣集名稱必須是FQDN。

    關於從兩個節點本地工作的redis-cli -p 19332,正如我的同事@ItamarHaber提到的,您正在通過代理與Redis資源通信,所有請求都由您的主Redis進程提供服務。

    2

    據我所知,RLEC使用專有的複製,這是來自開源Redis的不同。

    這是不正確的 - RLEC中的複製與開源的相同,它是不同的和專有的集羣。

    我想實現的是,如果我的主數據庫發生故障,我的應用程序仍然可以通過連接到副本數據庫來正常工作。

    對於啓用複製的數據庫,RLEC爲您透明地管理故障轉移 - 您只需連接到提供的端點即可。如果發生主站故障,系統會自動故障切換到副本,並且您的應用程序需要做的是在發生斷開連接的情況下重試連接到同一端點。端點永遠不會改變,並始終導致當前的主站。

    1. 此信息可在「碎片」的說法,或者經由status命令rladmin。無論如何,端點的位置是而不是指示主設備 - 端點是將客戶端連接到主設備的代理。

    2. 這是標準Redis複製的工作原理。在Redis中,複製是從主機到從機的一種方式。但是,奴隸可以寫入,但是寫入的任何東西都不會在上游生成,並且可能會被主人的數據覆蓋。無論如何,請始終使用端點連接到您的數據庫,而不要將本地連接到碎片 - 這可能會導致意外的結果。