2016-02-23 69 views
0

好吧,我所擁有的是在Windows NLB集羣環境中運行的2個Web服務器。服務器在各個方面都是相同的,並且正如您在NLB集羣環境中所期望的那樣,每個人都擊中集羣名稱,而不是單個成員。我們還關閉了羣集中的成員。羣集Web場中的Redis緩存?兩個成員節點之間的同步?

但是,我想要做的是打開一些緩存的一些大型文件(MP3)。在一個特定的成員上撥打一個Redis節點並點擊它很容易,一切都如你所願。我可以從緩存中提取數據並根據需要提供。

現在,讓我們添加NLB的開銷。使用NLB時,您可能不會每次都碰到同一個Web服務器。你可能會第一次打到成員01,第二次打到02.所以,我需要一種在兩臺服務器之間同步的方法。這樣,你打哪個集羣成員並不重要,你將獲得相同的數據。

我不需要擔心一個緩存過期,我在那裏存儲的唯一內容是隻讀取來自內部Web服務的數據。

我只有2臺服務器,它看起來像redis集羣需要3個。所以我想這就是了。

這是最好的方法嗎?或者還有其他更好的東西?

redis的原因:我們只希望緩存僅使用內存。沒有寫入數據庫。認爲這將是一個不錯的選擇,但需要確保數據在兩臺服務器上均可用。

回答

0

不可能擁有redis multi master(在兩者上都寫)。我可能會說它的複製速度很快(檢查Redis的slaveof命令)。

但爲什麼你需要它在同一臺服務器?作爲服務訪問它。所以每個節點都將訪問實際的數據。如果主服務器出現故障,從服務器會立即將自己變成主服務器。

一個觀察:您可能會注意到Redis以異步方式使用磁盤。一個只附加文件,它會根據大小不時檢查點。

+0

大部分這是一個資源的事情。我想要冗餘的服務器,但是使用率很小,所以爲什麼要爲整個服務器提供緩存?當前Web服務器集羣的總體使用量非常小。如果它達到了我們擁有體面的音量的程度,那麼我們肯定會考慮將緩存部分分離到他們自己的服務器上...... –

+0

尼克,這樣你就可以在每臺服務器上設置一個節點。一個是主人,另一個是奴隸。所以你可以在沒有額外成本的情況下使用冗餘 – otaviofcs

+0

那麼當我重新啓動01(Master)時會發生什麼? 02將成爲新的主人,而02在網上回來時將成爲奴隸?我可以買入。 –