2014-06-10 45 views
0

我是mongo複製中的新成員。Mongo ReplicaSet explain

我有兩臺服務器,我在一臺服務器上設置了主服務器,另一臺服務器爲輔服務器。

我正在開發使用springspring-data和我使用XML配置來訪問蒙戈Web應用程序:

<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> 

可以請別人解釋我什麼是設置副本流?

它會首先寫入主文件,並自動寫入次要文件?

框架是否會檢查到每個數據庫的連接是否成功,如果當前的主服務器不可用(選擇輔助服務器作爲主服務器),則「選擇」主服務器? 如果是,小學再次回來時會發生什麼?

謝謝!

+0

我會從這裏開始:http://docs.mongodb.org/manual/core/replication-introduction/ –

回答

2

複製的基本流程:

您的應用程序(客戶端)寫入副本集的主節點。寫操作存儲在日誌文件(oplog)中,並且oplog通過「鏈接複製」(默認)複製到輔助節點,或者從最近的成員複製(可配置),在此處閱讀http://docs.mongodb.org/manual/tutorial/manage-chained-replication/。 「它將首先寫入主文件,並自動寫入次要主文件?」

寫入主存儲器,存儲在oplog中,oplog複製到備用存儲器,然後寫入應用到備用存儲器。它是自動的,但您必須考慮網絡延遲。延遲因素包括主節點和次節點之間的距離,以及防火牆等障礙。 MongoDB的複製有很多東西可以玩,例如更高的writeConcern設置以增加一致性(以吞吐量爲代價),配置延遲次級作爲備份,每個次級的選擇優先級(對多數據中心有用)等。

「框架是否檢查連接是否成功每個數據庫,如果當前的主服務器不可用,則「選舉」主服務器(所以選擇次服務器作爲主服務器)?如果是,當主服務器再次返回時會發生什麼?「

副本集的成員之間有'心跳'。如果某位成員出現故障,則在10-30秒內其他成員將檢測到丟失心跳,並將該成員標記爲不可用。如果下來的成員是主要的,選舉過程將會發生,並且新的主要成員當選。保持「奇數」成員(3,5,7 ...最多12個成員和7個投票成員)是重要的http://docs.mongodb.org/manual/core/replica-set-architecture-four-members/

當這個被擊倒的主要回來時它將成爲次要的,有未處理的操作(操作不適用於輔助文件)存儲在「回滾」文件夾中,必須手動將其應用回數據庫或丟棄。