婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > mongoDB 實現主從讀寫分離實現的實例代碼

mongoDB 實現主從讀寫分離實現的實例代碼

熱門標簽:電銷機器人是什么軟件 蘋果汽車租賃店地圖標注 濟南電銷機器人加盟公司 云南外呼系統 怎么投訴地圖標注 杭州人工電銷機器人價格 廣州長安公司怎樣申請400電話 呼和浩特電銷外呼系統加盟 老虎洗衣店地圖標注

mongoDB主從讀寫分離

MongoDB官方已經不建議使用主從模式了,替代方案是采用副本集的模式, 點擊查看。如果您的環境不符合副本集模式可參考本文,來實現主從讀寫分離。

resources.properties

mongodb_read.host=10.0.0.45
mongodb_read.port=27017
mongodb_read.apname=ecsp
mongodb_read.username=
mongodb_read.password=

mongodb_write.host=10.0.0.46
mongodb_write.port=27017
mongodb_write.apname=ecsp
mongodb_write.username=
mongodb_write.password=

mongo_config.xml

beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
  xmlns:mongo="http://www.springframework.org/schema/data/mongo"
  xsi:schemaLocation="http://www.springframework.org/schema/context   
     http://www.springframework.org/schema/context/spring-context-2.0.xsd   
     http://www.springframework.org/schema/data/mongo   
     http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd   
     http://www.springframework.org/schema/beans   
     http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

  !-- 連接數據庫信息 -->
  bean id="propertyConfigurer"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    property name="locations">
      list>
        value>classpath:resources.properties/value>
      /list>
    /property>
  /bean>
  !-- 讀start -->
  bean id="mongoServerReadAddress" class="com.mongodb.ServerAddress">
    constructor-arg value="${mongodb_read.host}">/constructor-arg>
    constructor-arg value="${mongodb_read.port}">/constructor-arg>
  /bean>
  bean id="chexunMongoReadOptions" class="com.ecsp.chexun.mongo.ChexunMongoOptions">
    property name="username" value="${mongodb_read.username}" />
    property name="password" value="${mongodb_read.password}" />
    property name="dbname" value="${mongodb_read.apname}" />
    property name="connectionsPerHost" value="100" />
    property name="threadsAllowedToBlockForConnectionMultiplier"
      value="5" />
    property name="slaveOk" value="true" />
  /bean>
  bean id="mongo_read" class="com.mongodb.Mongo">
    constructor-arg ref="mongoServerReadAddress">/constructor-arg>
    constructor-arg ref="chexunMongoReadOptions">/constructor-arg>
  /bean>
  !-- 讀end -->

  !-- 寫start -->
  bean id="mongoServerWriteAddress" class="com.mongodb.ServerAddress">
    constructor-arg value="${mongodb_write.host}">/constructor-arg>
    constructor-arg value="${mongodb_write.port}">/constructor-arg>
  /bean>
  bean id="chexunMongoWriteOptions" class="com.ecsp.chexun.mongo.ChexunMongoOptions">
    property name="username" value="${mongodb_write.username}" />
    property name="password" value="${mongodb_write.password}" />
    property name="dbname" value="${mongodb_write.apname}" />
    property name="connectionsPerHost" value="100" />
    property name="threadsAllowedToBlockForConnectionMultiplier"
      value="5" />
  /bean>
  bean id="mongo_write" class="com.mongodb.Mongo">
    constructor-arg ref="mongoServerWriteAddress">/constructor-arg>
    constructor-arg ref="chexunMongoWriteOptions">/constructor-arg>
  /bean>
  !-- 寫end -->

  !-- 鏈接對象注入start -->
  bean id="mongoHelper" class="com.ecsp.chexun.mongo.MongoHelper">
    constructor-arg ref="mongo_read">/constructor-arg>
    constructor-arg ref="mongo_write">/constructor-arg>
  /bean>

  !-- 鏈接對象注入end -->
/beans>

web.xml

context-param>
  param-name>contextConfigLocation/param-name>
  param-value>
    /WEB-INF/classes/mongo_config.xml
  /param-value>
/context-param>

實體層ChexunMongoOptions.Java

package com.ecsp.chexun.mongo;

import javax.net.SocketFactory;

import com.mongodb.DBDecoderFactory;
import com.mongodb.MongoOptions;

/**
 * Mongo配置類
 * 
 * @author vincent.he
 * @version 1.0, Created on 2012-3-12
 * 
 */
public class ChexunMongoOptions extends MongoOptions{
  private String username;
  private String password;
  private String dbname;

  public ChexunMongoOptions(){
    super();
  }

  public void setDescription(String description) {
    this.description = description;
  }

  public void setConnectionsPerHost(int connectionsPerHost) {
    this.connectionsPerHost = connectionsPerHost;
  }

  public void setThreadsAllowedToBlockForConnectionMultiplier(
      int threadsAllowedToBlockForConnectionMultiplier) {
    this.threadsAllowedToBlockForConnectionMultiplier = threadsAllowedToBlockForConnectionMultiplier;
  }

  public void setMaxWaitTime(int maxWaitTime) {
    this.maxWaitTime = maxWaitTime;
  }

  public void setConnectTimeout(int connectTimeout) {
    this.connectTimeout = connectTimeout;
  }

  public void setSocketTimeout(int socketTimeout) {
    this.socketTimeout = socketTimeout;
  }

  public void setSocketKeepAlive(boolean socketKeepAlive) {
    this.socketKeepAlive = socketKeepAlive;
  }

  public void setAutoConnectRetry(boolean autoConnectRetry) {
    this.autoConnectRetry = autoConnectRetry;
  }

  public void setMaxAutoConnectRetryTime(long maxAutoConnectRetryTime) {
    this.maxAutoConnectRetryTime = maxAutoConnectRetryTime;
  }

  public void setSlaveOk(boolean slaveOk) {
    this.slaveOk = slaveOk;
  }

  public void setDbDecoderFactory(DBDecoderFactory dbDecoderFactory) {
    this.dbDecoderFactory = dbDecoderFactory;
  }

  public void setSafe(boolean safe) {
    this.safe = safe;
  }

  public void setW(int w) {
    this.w = w;
  }

  public void setWtimeout(int wtimeout) {
    this.wtimeout = wtimeout;
  }

  public void setFsync(boolean fsync) {
    this.fsync = fsync;
  }

  public void setJ(boolean j) {
    this.j = j;
  }

  public void setSocketFactory(SocketFactory socketFactory) {
    this.socketFactory = socketFactory;
  }

  public String getUsername() {
    return username;
  }

  public void setUsername(String username) {
    this.username = username;
  }

  public String getPassword() {
    return password;
  }

  public void setPassword(String password) {
    this.password = password;
  }

  public String getDbname() {
    return dbname;
  }

  public void setDbname(String dbname) {
    this.dbname = dbname;
  }
}

Java dao層

package com.ecsp.chexun.mongo;
import java.util.List;


import com.mongodb.BasicDBObject;
import com.mongodb.CommandResult;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.Mongo;

/**
 * mongo 操做方法
 * @author zhanglibing
 * 
 */
public class MongoHelper {

  private Mongo mongo;
  private Mongo mongo_read;
  private Mongo mongo_write;
  private String dataBaseName = "cxec";
  public MongoHelper(){}
  public MongoHelper(Mongo mongo,Mongo mongo_read,Mongo mongo_write){
    this.mongo = mongo;
    this.mongo_read = mongo_read;
    this.mongo_write = mongo_write;
  }
// public MongoHelper(String dbName){
//   dataBaseName = dbName;   
// }
  public int add(String collectionName,BasicDBObject dbObject){
//   DB db = MongoManager.getDB(dataBaseName); 
    DB db = mongo_write.getDB(dataBaseName);
    DBCollection dbc = db.getCollection(collectionName); 
    return dbc.save(dbObject).getN();
  }
  //批量添加
  public int addAll( String collectionName,ListDBObject> list){
//   DB db = MongoManager.getDB(dataBaseName); 
    DB db = mongo_write.getDB(dataBaseName);
    DBCollection dbc = db.getCollection(collectionName); 
    return dbc.insert(list).getN();
  }

  public int isExists(String collectionName,BasicDBObject query){
//   DB db = MongoManager.getDB(dataBaseName); 
    DB db = mongo_read.getDB(dataBaseName);
    DBCollection dbc = db.getCollection(collectionName);
    return dbc.find(query).size();   
  }

  public ListDBObject> get(String collectionName,BasicDBObject query){
//   DB db = MongoManager.getDB(dataBaseName);
    DB db = mongo_read.getDB(dataBaseName);
    DBCollection dbc = db.getCollection(collectionName);
    return dbc.find(query).toArray();
  }

  public int getCount(String collectionName,BasicDBObject query){    
//   DB db = MongoManager.getDB(dataBaseName);
    DB db = mongo_read.getDB(dataBaseName);
    DBCollection dbc = db.getCollection(collectionName);
    return dbc.find(query).count();    
  }

  public ListDBObject> get(String collectionName,BasicDBObject query,BasicDBObject keys){
//   DB db = MongoManager.getDB(dataBaseName);
    DB db = mongo_read.getDB(dataBaseName);
    DBCollection dbc = db.getCollection(collectionName);
    return dbc.find(query, keys).toArray();
  }

  /***
   * 獲取mongo 中 collection 的值
   * @param collectionName
   * @param query 查詢條件
   * @param keys  查詢字段
   * @param batchSize 返回個數
   * @return
   */
  public ListDBObject> get(String collectionName,BasicDBObject query,BasicDBObject keys,BasicDBObject orderBy,int batchSize){
//   DB db = MongoManager.getDB(dataBaseName);
    DB db = mongo_read.getDB(dataBaseName);
    DBCollection dbc = db.getCollection(collectionName);
    if(orderBy != null){
      return dbc.find(query, keys).sort(orderBy).limit(batchSize).toArray(); 
    }
    return dbc.find(query, keys).limit(batchSize).toArray();
  }

  public ListDBObject> get(String collectionName,BasicDBObject query,BasicDBObject keys,BasicDBObject orderBy,int batchSize,int n){
//   DB db = MongoManager.getDB(dataBaseName);
    DB db = mongo_read.getDB(dataBaseName);
    DBCollection dbc = db.getCollection(collectionName);
    if(orderBy != null){
      return dbc.find(query, keys).sort(orderBy).limit(batchSize).skip(n).toArray(); 
    }
    return dbc.find(query, keys).limit(batchSize).toArray();
  }

  public ListDBObject> get(String collectionName,DBObject query,int batchSize){
//   DB db = MongoManager.getDB(dataBaseName);
    DB db = mongo_read.getDB(dataBaseName);
    DBCollection dbc = db.getCollection(collectionName);      
    return dbc.find(query).limit(batchSize).toArray();
  }
  public ListDBObject> get(String collectionName,int number){
    DB db = mongo_read.getDB(dataBaseName);
    DBCollection dbc = db.getCollection(collectionName);  
    ListDBObject> dboList = dbc.find().skip(0).limit(number).toArray();
    return dboList;
  }
  public ListDBObject> get(String collectionName,BasicDBObject query,BasicDBObject orderBy,int n,int pageSize ){
    DB db = mongo_read.getDB(dataBaseName);
    DBCollection dbc = db.getCollection(collectionName);  
    ListDBObject> dboList = dbc.find(query).sort(orderBy).skip(n).limit(pageSize).toArray();
    return dboList;
  }
  public ListDBObject> get(String collectionName,BasicDBObject query,int top ){
    DB db = mongo_read.getDB(dataBaseName);
    DBCollection dbc = db.getCollection(collectionName);  
    ListDBObject> dboList = dbc.find(query).skip(0).limit(top).toArray();

    return dboList;
  }
  public ListDBObject> get(String collectionName,DBObject query,DBObject orderBy,int batchSize){
//   DB db = MongoManager.getDB(dataBaseName);
    DB db = mongo_read.getDB(dataBaseName);
    DBCollection dbc = db.getCollection(collectionName);
    return dbc.find(query).sort(orderBy).limit(batchSize).toArray();
  }

  public int reomve(String collectionName,BasicDBObject o){
//   DB db = MongoManager.getDB(dataBaseName);
    DB db = mongo_write.getDB(dataBaseName);
    DBCollection dbc = db.getCollection(collectionName);
    return dbc.remove(o).getN();
  }

  public int edit(String collectionName,BasicDBObject query,BasicDBObject update){
//   DB db = MongoManager.getDB(dataBaseName);
    DB db = mongo_write.getDB(dataBaseName);
    DBCollection dbc = db.getCollection(collectionName);
    return dbc.update(query, update).getN();
    //return dbc.updateMulti(query, update).getN();
  }

  public int edit(String cmd){
//   DB db = MongoManager.getDB(dataBaseName);
    DB db = mongo.getDB(dataBaseName);
    CommandResult cmdResult = db.command(cmd);
    if(cmdResult.ok())
    {
      return 1;
    }
    return 0;
  }

// public DBCollection get(String collectionName){
////    DB db = MongoManager.getDB(dataBaseName);
//   DB db = mongo.getDB(dataBaseName);
//   return db.getCollection(collectionName);
// }
  public void setMongo(Mongo mongo) {
    this.mongo = mongo;
  }
  public void setMongo_read(Mongo mongo_read) {
    this.mongo_read = mongo_read;
  }
  public void setMongo_write(Mongo mongo_write) {
    this.mongo_write = mongo_write;
  }



}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

您可能感興趣的文章:
  • Python實現讀取SQLServer數據并插入到MongoDB數據庫的方法示例
  • Python實現批量讀取圖片并存入mongodb數據庫的方法示例
  • python讀取json文件并將數據插入到mongodb的方法
  • 了不起的node.js讀書筆記之mongodb數據庫交互
  • mongodb的寫操作
  • mongodb與sql關系型數據比較
  • mongodb使用c#驅動數據插入demo
  • c#操作mongodb插入數據效率
  • mongodb實現數組對象求和方法實例
  • Mongodb讀數據操作

標簽:自貢 無錫 廈門 遼陽 雞西 玉林 泰安 興安盟

巨人網絡通訊聲明:本文標題《mongoDB 實現主從讀寫分離實現的實例代碼》,本文關鍵詞  mongoDB,實現,主從,讀寫,分離,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《mongoDB 實現主從讀寫分離實現的實例代碼》相關的同類信息!
  • 本頁收集關于mongoDB 實現主從讀寫分離實現的實例代碼的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲r级在线视频| 一区二区三区日韩在线观看| 精品少妇一区二区三区免费观看 | 国产欧美一区二区精品仙草咪| 欧美日韩aaa| 国产欧美日本一区二区三区| 亚洲高清免费视频| 久久精品视频免费| 日本道精品一区二区三区| 99在线热播精品免费| 日韩国产高清影视| 五月天亚洲婷婷| 午夜欧美电影在线观看| 一区二区三区在线观看欧美| 亚洲视频免费看| 国产精品高潮呻吟久久| 国产精品国产三级国产aⅴ入口 | 91极品美女在线| 一本大道久久a久久精品综合| 91免费视频网| 91免费观看在线| 欧美三级日本三级少妇99| 粉嫩绯色av一区二区在线观看| 久久精品国产亚洲5555| 国产在线播放一区三区四| 精品无码三级在线观看视频| 国产一区二区久久| 国产成人精品aa毛片| 不卡视频免费播放| 99久久99精品久久久久久| 欧美亚洲综合另类| 在线播放中文一区| 国产日韩欧美亚洲| 亚洲精品免费视频| 亚洲线精品一区二区三区八戒| 免费在线看成人av| 韩国理伦片一区二区三区在线播放| 极品少妇xxxx偷拍精品少妇| 国产成人av影院| 欧美影片第一页| 精品国产污污免费网站入口| 久久久久久久精| 一区二区三区精品在线| 激情文学综合插| 91视频国产观看| 精品乱人伦小说| 国产精品久久看| 亚洲电影第三页| 国产成人av电影免费在线观看| 色噜噜夜夜夜综合网| 日韩欧美中文一区| 国产亚洲精品福利| 亚洲18色成人| 成人高清av在线| 欧美一区二区精品在线| 欧美国产日本韩| 亚洲成a人片在线观看中文| 国产一区二区91| 欧美午夜精品免费| 国产精品久久久久久妇女6080| 艳妇臀荡乳欲伦亚洲一区| 成熟亚洲日本毛茸茸凸凹| 正在播放亚洲一区| 亚洲欧洲美洲综合色网| 老司机免费视频一区二区三区| 日本大香伊一区二区三区| 久久久亚洲国产美女国产盗摄| 亚洲人亚洲人成电影网站色| 国内外精品视频| 欧美一区二区在线免费播放 | 欧美激情一区二区三区蜜桃视频| 午夜影视日本亚洲欧洲精品| 久久er精品视频| 欧美精品色综合| 一区二区三区四区不卡视频| 高清成人在线观看| 欧美日韩国产a| 亚洲麻豆国产自偷在线| 白白色 亚洲乱淫| 国产调教视频一区| 国产精品亚洲第一区在线暖暖韩国| 日韩天堂在线观看| 久久综合综合久久综合| 欧美在线你懂得| 亚洲区小说区图片区qvod| 成人av网站在线观看免费| 国产视频视频一区| 国产精品综合一区二区三区| 2020国产精品久久精品美国| 精品一区二区在线免费观看| 日韩视频永久免费| 国产一区二区三区精品视频| 日韩欧美精品在线视频| 喷白浆一区二区| www亚洲一区| 国产91丝袜在线观看| 欧美国产一区二区在线观看| 成人黄色软件下载| 中文字幕中文字幕在线一区| 色婷婷亚洲一区二区三区| 蜜臀av一区二区三区| 国产欧美日韩另类视频免费观看| 91在线观看下载| 蜜臀va亚洲va欧美va天堂| 国产精品国产馆在线真实露脸| 欧美日韩二区三区| 国产成a人无v码亚洲福利| 五月天激情小说综合| 中文字幕欧美激情| 91精品国产全国免费观看| 成人av电影在线网| 蜜桃av一区二区| 一区二区三区在线观看动漫| 久久综合九色综合97婷婷女人| 日本韩国一区二区三区| 国内不卡的二区三区中文字幕| 一区二区在线电影| 国产午夜精品福利| 欧美美女视频在线观看| 成a人片亚洲日本久久| 日日夜夜免费精品视频| 国产精品国产自产拍高清av王其| 日韩欧美国产三级| 欧美亚洲国产一区二区三区| 懂色av一区二区在线播放| 久久狠狠亚洲综合| 日本午夜一本久久久综合| 亚洲精品国产精品乱码不99| 久久久一区二区| 精品久久久影院| 欧美老女人第四色| 欧洲视频一区二区| 色综合天天综合狠狠| 成人看片黄a免费看在线| 久久99热99| 精品亚洲成av人在线观看| 另类人妖一区二区av| 另类人妖一区二区av| 日韩成人一区二区三区在线观看| 亚洲成人av一区二区| 亚洲成人精品在线观看| 亚洲亚洲精品在线观看| 亚洲精品中文字幕在线观看| 亚洲天堂网中文字| 亚洲人成7777| 亚洲狠狠爱一区二区三区| 亚洲日本免费电影| 亚洲欧美日韩电影| 亚洲一线二线三线视频| 亚洲成人av一区二区三区| 亚洲成人动漫av| 日韩在线观看一区二区| 日韩精品电影在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅 | 蜜臀久久99精品久久久久宅男| 日本亚洲欧美天堂免费| 久久99精品一区二区三区三区| 经典三级视频一区| 国产91精品露脸国语对白| 99re这里只有精品6| 在线免费观看日韩欧美| 91精品国产综合久久久蜜臀图片| 3751色影院一区二区三区| 精品免费国产二区三区| 久久精品一区二区三区不卡| 日本一区二区不卡视频| 亚洲色图清纯唯美| 日韩精品一二三四| 国产成人精品亚洲日本在线桃色| 99精品视频中文字幕| 欧美高清视频www夜色资源网| 精品国产三级电影在线观看| 国产精品国模大尺度视频| 天使萌一区二区三区免费观看| 激情综合网天天干| 色综合激情久久| 精品日韩一区二区三区免费视频| 亚洲欧洲韩国日本视频| 视频在线观看一区| 成人亚洲精品久久久久软件| 欧美体内she精高潮| 久久久蜜臀国产一区二区| 亚洲精选视频在线| 国产精品系列在线播放| 欧美在线观看一二区| 久久精品日韩一区二区三区| 亚洲va欧美va人人爽| 国产美女一区二区三区| 欧美午夜精品免费| 国产精品丝袜久久久久久app| 视频一区视频二区中文| 成人开心网精品视频| 日韩欧美区一区二| 亚洲一区二区三区中文字幕 | 亚洲欧美日韩成人高清在线一区| 亚洲成在人线在线播放| 成人av综合一区| 久久久国产精品午夜一区ai换脸| 亚洲不卡av一区二区三区| 99r国产精品|