我有一个包含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