繁体   English   中英

Mongo ReplicaSet解释

[英]Mongo ReplicaSet explain

我是mongo复制的新手。

我有两个服务器,在一个服务器上设置一个主服务器,在另一个服务器上设置辅助服务器。

我正在使用springspring-data开发一个Web应用程序,并且使用该xml配置访问mongo:

<mongo:mongo id="mongoConnection" replica-set="IP-Primary:27017,IP-Secondary:27017">
        <mongo:options
            connections-per-host="100"
            threads-allowed-to-block-for-connection-multiplier="50"
            connect-timeout="10000"
            max-wait-time="50000"
            slave-ok="true"
            auto-connect-retry="true"
            write-number="1"
            write-timeout="0"
            write-fsync="false"/>
</mongo:mongo>
<beans:bean id="mongoWriteConcern" class="com.mongodb.WriteConcern">
    <beans:constructor-arg type="int" name="w" value="2"/></beans:bean> 
<beans:bean id="mongoCredentials"
    class="org.springframework.data.authentication.UserCredentials">
    <beans:constructor-arg name="username" value="xxx" />
    <beans:constructor-arg name="password" value="yyy" />
</beans:bean>
<beans:bean id="myTemplate"
    class="org.springframework.data.mongodb.core.MongoTemplate">
    <beans:constructor-arg ref="mongoConnection" />
    <beans:constructor-arg name="databaseName" value="dbName" />
    <beans:constructor-arg name="userCredentials" ref="mongoHotelCredentials" />
    <beans:property name="writeConcern" ref="mongoWriteConcern"/>
</beans:bean>

能否请人解释一下副本集上的流程是什么?

它将首先在主节点上写入,然后自动将主节点写入辅助节点吗?

如果当前的主数据库不可用,框架是否会检查与每个数据库的成功连接并“选出”一个主数据库(因此选择辅助数据库作为主数据库)? 如果是,当主节点再次返回时会发生什么?

谢谢!

复制的基本流程:

您的应用程序(客户端)写入副本集的主副本。 写操作存储在日志文件(oplog)中,并且oplog通过“链式复制”(默认)或从最近的成员复制到辅助副本(可配置),请参见此处http://docs.mongodb.org/manual/tutorial/管理链接复制/

“它将首先在主数据库上写入,然后自动将主数据库写入辅助数据库吗?”

写入到主服务器,存储在oplog中,oplog复制到辅助服务器,然后写入应用于辅助服务器。 它是自动的,但是您必须考虑网络延迟。 延迟因素包括主节点和辅助节点之间的距离,以及防火墙等障碍。 您可以通过MongoDB的复制进行很多操作,例如,更高的writeConcern设置以提高一致性(以吞吐量为代价),将延迟的辅助节点配置为充当备份,为每个辅助节点选择选举优先级(对多数据中心有用)等。

“如果当前的主数据库不可用,框架是否会检查与每个数据库的成功连接,并“选择”一个主数据库(因此选择辅助数据库作为主数据库?如果是,当主数据库再次出现时会发生什么?)

副本集的成员之间存在“心跳”。 如果某个成员掉线,则其他成员将在10-30秒内检测到丢失心跳,并将该成员标记为不可用。 如果下成员是主要成员,则将进行选举过程,并选举出新的主要成员。 重要的是要保持“奇数”的成员数量(3、5、7 ...最多12个成员,而有7个投票成员) http://docs.mongodb.org/manual/core/replica-set-architecture-四人/

当关闭的主服务器恢复正常后,它将成为辅助服务器,其中未处理的操作(未应用到辅助服务器的操作)存储在“ rollback”文件夹中,这些操作必须手动应用回数据库或丢弃。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM