簡體   English   中英

MongoDB:replicateSet:零停機時間

[英]MongoDB : replicaSet : zero downtime

我有一個3個節點的副本集。 該代碼通過pymongo連接到當前主機。 如果當前的主服務器出現故障,則大約需要兩秒鍾才能獲得新的主服務器。 我該怎么做才能將停機時間減少到零?

提前致謝

您需要做兩件事。

  1. 允許從設備讀取。 在我們的Java應用程序中,我們通過PRIMARY_PREFERRED作為ReadPreference來獲得它。 這使您的應用程序可以在整個選舉期間繼續閱讀。

  2. 持久層需要某種事務隊列,以便在replset選擇新的PRIMARY的過渡期間回寫。 我已經在Akka框架周圍看到了有關此問題的建議,在該框架中,實際保留內容的Actor在請求的內存隊列中保持其自身的地位。 在過渡期間,當Actor等待replset返回讀/寫時,隊列會建立。

對我來說,“在請求的內存隊列中”足以使我擔心,因為我還沒有拉動觸發器並實際實現了這一點。

只要沒有人能勝過CAP,您就不可能完全可用,因為分區容忍是分布式系統中的前提,並且MongoDB是一致的。 通過允許從輔助節點讀取數據,您會稍微削弱一致性並將其用於(讀取)可用性。

如果您的主要目標是可用性,那么MongoDB是錯誤的選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM