我有一個包含2個成員和一個仲裁器的MonogDB副本集。問題是當主節點關閉時,mongo選擇新的主節點時,我有一些數據丟失。我相信這是我可以在Java驅動程序級別上控制的東西。請幫助我找到正確的設置,以便在發生故障轉移時不會有任何數據丟失MongoDB Java驅動程序副本集故障轉移
2
A
回答
1
在初選期間,任何寫入都會導致異常,您必須重試這些寫入或將任何消息中繼給用戶。沒有內置的重試邏輯,因此您必須編寫自己的重試處理程序。
2
如果要確保只在接收到接收時寫入操作通過初級和至少一次次使用這個。如果主節點在與輔助節點同步之前發生故障(這當然會產生一些性能成本),它將防止數據丟失。
WriteResult result = collection.insert(..., WriteConcern. REPLICAS_SAFE);
關於編寫關注的更多細節在MongoDB docs。
附註
因爲你只需要在您所設定的兩個成員都寫,因爲沒有大多數你失去了一個節點之後的操作將失敗。爲了避免這種情況,您需要將仲裁人升級爲成員。
相關問題
- 1. C#缺少程序集故障轉移
- 2. mongodb副本在故障轉移後不會選擇主節點
- 3. mongodb故障轉移連接
- 4. MongoDB複製故障轉移
- 5. Oracle瘦驅動程序和RAC DB的透明故障轉移
- 6. 如何故障轉移到Java中的AWS RDS MySQL副本
- 7. 支持副本集的C#MongoDB驅動程序
- 8. symfony2應用程序:mongodb副本集故障切換需要Apache重啓
- 9. Redis羣集:沒有自動故障轉移爲主故障
- 10. erlang lager_syslog驅動程序故障
- 11. Redis副本集故障切換,Celery
- 12. MongoDB故障轉移與Rails應用程序的問題
- 13. Java驅動程序MongoDB updateone
- 14. MongoDB WriteConcern Java驅動程序
- 15. MongoDB的Java驅動程序
- 16. mongodb java驅動程序將大型結果集轉換爲json
- 17. 分割故障基本程序集
- 18. Memcache故障轉移
- 19. Couchbase羣集故障轉移架構
- 20. Memcache羣集故障轉移複製
- 21. 使用DiskVolumeInfo(羣集故障轉移API)
- 22. 使用故障轉移羣集
- 23. ActiveMQ服務故障轉移和數據庫故障轉移
- 24. Java故障轉移框架/庫
- 25. aong上的mongodb自動故障轉移/高可用性
- 26. Redis/Jedis沒有單點故障和自動故障轉移
- 27. 用於主動/被動故障轉移羣集的.NET庫
- 28. keepalived腳本使故障轉移瘋狂
- 29. 副本在故障轉移和恢復後設置數據庫狀態
- 30. mysqlfailover自動故障轉移未啓用
我只有2個成員,所以如果去那裏只有1個成員(主),所以會拋出一個錯誤,因爲只有主要可訪問 – PHPDEV
正確。爲了避免數據丟失**和**在鬆動一個節點後設置了功能副本,您需要將仲裁器升級爲成熟的副本集成員。 – Sebastian