考慮以下情形:位於CouchDB複製如何與失敗/恢復的服務器一起運行?
3 EC2實例:
- US-WEST
- 愛爾蘭
- 東京
每個實例是專用的CouchDB服務器。每個CouchDB服務器都設置爲與其他服務器(雙向)連續複製。
現在假設愛爾蘭服務器由於某些AWS停機而下線。美國西部和東京CouchDB服務器將重試X次,然後最終無法通過該服務器進行復制(這是否正確?)
假設6小時過去,AWS將該區域重新聯機並且該服務器返回起來 - 我認爲美國西部和東京將忽略愛爾蘭服務器,直到愛爾蘭的CouchDB服務器重新啓動雙向同步與他們兩個,一拉:
愛爾蘭CouchDB的_replicator僞設置
- replicate [source = local主機,目標= US-西]
- 複製[源=我們走向,目標=本地主機]
- 複製[源=本地主機,目標=東京]
- 複製[源=東京,目標=本地主機]
問題1:我對Couch的複製失敗/恢復的理解是否正確?
Q2:如果網絡故障在一小時後修復(特別是:服務器沒有重新啓動,迫使DB在啓動時重新啓動自身),那麼相應的CouchDB實例如何對此做出反應?我想我們西方和東京會忘記愛爾蘭,但愛爾蘭突然開始與這兩臺服務器再次交談,重新初始化雙向連續複製?
我特別感興趣的是EC2環境中的故障恢復,所以如果有一個特定的細節我錯過了,請告訴我。
謝謝!
羅伯特,那真是太棒了。在使用SimpleDB,Redis和Mongo後,我突然意識到Couch對複製的癡迷,這就像一個燈在我腦海中消失......突然間,我的痛苦點與NoSQL數據存儲/持久性/安全性一起掉了,我離開了有了這個直接,簡單和強大的系統*只是工作*。非常感謝您的澄清! –