发表于 2025-10-28 12:34:52

MongoDB副本集

副本集架构

对于mongodb来说,数据库高可用是通过副本集架构实现的,一个副本集由一个主节点和多少个从节点所构成。
客户端通过数据库主节点写入数据后,由从节点举行复制同步,如许全部从节点都会拥有这些业务数据的副本,当主节点发生故障而变得不可用时,从节点能自动发起推举并产生新的主节点举行接受,此时,客户端仍然能继承举行访问,这包管了业务的一连性。
MongoDB推举先容

mongodb的副本集推举、复制机制是基于Raft协议的。Raft协议的推举机制中leader必须通过大多数节点投票才气产生。我们假设副本集的投票成员数目为N,则大多数为N/2+1。当副本集内存活的成员数目不敷大多数时,整个副本集将无法推举除主节点,此时无法提供写服务,这些节点都将处于只读状态。别的,如果渴望克制平票效果的产生,最好利用奇数个节点成员,比如3个或5个。固然,mongodb副本集的实现中,对于平票标题已经提供相识决方案:


[*]为推举定时器增长少量的随机时间毛病,如许克制各个节点 在同一时间发起推举,进步乐成率。
[*]利用仲裁者脚色,该脚色不做数据复制,也不负担读写业务,仅仅用来投票。
别的,在一个mongodb副本会合,最多只能有50个成员,而到场投票的成员最多只能有7个。这是由于一旦过多成员到场数据复制、投票过程,将会带来更多可靠性方面的标题。
mongodb为副本集成员提供了多种脚色,详细如下:


[*]Primary:主节点,其吸收全部的写哀求,然后把修改同步到全部从节点。一个副本集只能有一个主节点,当主节点”挂掉“之后,其他节点会重新推举出一个主节点。
[*]Secondary:从节点,与主节点保持同样的数据集。当主节点”挂掉“时,到场竞选主节点。
[*]Arbiter:仲裁者节点,该节点只到场投票,不能被选为主节点,而且不从主节点中同步数据。当节点宕机导致副本集无法选出主节点时,可以给副本集添加一个仲裁节点,如许仍然可以选出主节点。仲裁者节点自己不存储数据,好坏常轻量级的服务。当副本集成员为偶数时,

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: MongoDB副本集