MongoDB副本集学习:性能和优化相关

Read Preferences/读写分离

        有时候为了考虑应用程序的性能或响应性,为了提高读取操作的吞吐率,一个常见的措施就是进行读写分离,MongoDB副本集对读写分离的支持是通过Read Preferences特性进行支持的,这个特性非常复杂和灵活。以下几种应用场景可能会考虑对副本集进行读写分离:

  1. 操作不影响前端应用程序,比如备份或者报表;
  2. 在一个物理上分布的副本集群中,为了减少应用程序的延迟,可能会优先选择离应用程序更近的secondary节点而不是远在千里之外机房的主节点;
  3. 故障发生时候能够提供一个优雅的降级。副本集primary节点宕机后再选出新的primary节点这段时间内(10秒或更长时间)能够依然响应客户端应用的读请求;
  4. 应用能够容忍一定程度的数据不一致性。

阅读全文 >>

搭建高可用mongodb集群—— 深入副本集内部机制

        在搭建高可用mongodb集群—— 副本集介绍了副本集的配置,这篇文章深入研究一下副本集的内部机制。还是带着副本集的问题来看吧!

  • 副本集故障转移,主节点是如何选举的?能否手动干涉下架某一台主节点。
  • 官方说副本集数量最好是奇数,为什么?
  • mongodb副本集是如何同步的?如果同步不及时会出现什么情况?会不会出现不一致性?
  • mongodb的故障转移会不会无故自动发生?什么条件会触发?频繁触发可能会带来系统负载加重?

阅读全文 >>