MongoDB的java客戶端連接池配置說明

  1. XML配置

    <!-- spring 1.x版本生成的mongo-client實際上爲Mongo,而不是MongoClient -->
    <mongo:mongo-client host="192.168.31.41" port="27017" id="mongo">
    	<mongo:client-options 
    	      write-concern="ACKNOWLEDGED"
    	      connections-per-host="100"
    	      threads-allowed-to-block-for-connection-multiplier="5"
    	      max-wait-time="120000"
    		  connect-timeout="10000"/> 
    </mongo:mongo-client>
    
  2. 配置項說明

    參數名
    默認值
    說明
    writeConcern ACKNOWLEDGED 寫入安全機制,是一種客戶端設置,用於控制寫入安全的級別:
    1. ACKNOWLEDGED 默認選項,數據寫入到Primary就向客戶端發送確認;
    2. 0 Unacknowledged 對客戶端的寫入不需要發送任何確認,適用於性能要求高,但不關注正確性的場景;
    3. 1 W1 數據寫入後,會等待集羣中1臺發送確認;
    4. 2 W2 數據寫入後,會等待集羣中兩臺臺發送確認;
    5. 3 W3 數據寫入後,會等待集羣中3臺臺發送確認;
    6. JOURNALED 確保所有數據提交到 journal file;
    7. MAJORITY 等待集羣中大多數服務器提交後確認;
    codecRegistry MongoClient.getDefaultCodecRegistry() 編解碼類,實現Codec接口
    minConnectionsPerHost 客戶端最小連接數
    connectionsPerHost 100 客戶端最大連接數
    hreadsAllowedToBlockForConnectionMultiplier 5 此參數跟connectionsPerHost的乘積爲一個線程可用的最大阻塞數,超過此乘積之後的所有線程將馬上獲取一個異常
    maxWaitTime 1000 * 60 * 2 一個線程等待連接可用的最大等待毫秒數,0表示不等待
    maxConnectionIdleTime 設置池連接中的連接的最大空閒時間,單位毫秒,0表示沒有限制
    maxConnectionLifeTime 設置池連接中的連接的最大使用時間,單位毫秒,0表示沒有限制
    connectTimeout 1000*10 連接超時時間,單位毫秒,0表示沒有限制
    alwaysUseMBeans false 是否打開JMX監控
    heartbeatFrequency 1000*10 設置心跳頻率。 這是驅動程序嘗試確定羣集中每個服務器的當前狀態的頻率,單位毫秒
    minHeartbeatFrequency 500 設置最低心跳頻率。 如果驅動程序必須經常重新檢查服務器的可用性,那麼至少要等上一次檢查以避免浪費,單位毫秒
    heartbeatConnectTimeout 2000*10 心跳檢測連接超時時間
    heartbeatSocketTimeout 2000*10 心跳檢測Socket超時時間
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章