后台nosql数据库mongodb高可用
副本集架构(Replica Set)
为了防止单点故障就需要引副本(replication),当发生硬件故障或者其他原因造成的宕机时,可以使用副本进行恢复,最好能够自动的故障转移(failover),有时引入副本是为了读写分离,将读请求分流到副本上,减轻主(primary)的读压力。mongodb的Replica Set能满足这些需求。
Replicat set的一堆mongodb的实例集合,他们有着同样的数据内容,包含三类角色
主节点(Primary):
接受所有的写请求,然后把修改同步到所有Secondary。一个Replica Set 只能有一个Primary节点,当Primar挂掉后,其他Secondary或者Arbiter节点会重新选举出来一个主节点。默认读请求也是发送到Primary节点处理的,需要转发到Secondary需要客户端修改一下连接配置。
副本节点(Secondary):
与主节点数据集保持一致,当主节点挂掉的时候,参与选主。
仲裁者:
不保有数据,不参与选主,只进行选主投票,使用Arbiter可以减轻数据存储的硬件需求,Arbiter跑起来几乎没有么硬件资源需求,生产上不能跟主节点部署在同一台机器上。
一个自动的故障转移的副本及架构的节点数必须为奇数,目的是选主投票要有一个大多数才能进行选主决策。
客户端连接到整个副本集,不关心具体哪一台机器是否挂掉,主服务器负责整个副本集的读写,副本集定期同步数据备份,一旦主节点挂掉,副本节点就会选举一个新的主服务器,这一切对于应用服务器不需要关心。副本集中的副节点在主节点挂掉后,通过心跳检测,就会在集群中发起选主节点的选举机制,自动选取一个新的主服务器。

浙公网安备 33010602011771号