校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > mongoDB 實現(xiàn)主從讀寫分離實現(xiàn)的實例代碼

mongoDB 實現(xiàn)主從讀寫分離實現(xiàn)的實例代碼

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

mongoDB主從讀寫分離

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

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

  !-- 連接數(shù)據(jù)庫信息 -->
  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 返回個數(shù)
   * @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實現(xiàn)讀取SQLServer數(shù)據(jù)并插入到MongoDB數(shù)據(jù)庫的方法示例
  • Python實現(xiàn)批量讀取圖片并存入mongodb數(shù)據(jù)庫的方法示例
  • python讀取json文件并將數(shù)據(jù)插入到mongodb的方法
  • 了不起的node.js讀書筆記之mongodb數(shù)據(jù)庫交互
  • mongodb的寫操作
  • mongodb與sql關(guān)系型數(shù)據(jù)比較
  • mongodb使用c#驅(qū)動數(shù)據(jù)插入demo
  • c#操作mongodb插入數(shù)據(jù)效率
  • mongodb實現(xiàn)數(shù)組對象求和方法實例
  • Mongodb讀數(shù)據(jù)操作

標(biāo)簽:自貢 無錫 廈門 遼陽 雞西 玉林 泰安 興安盟

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《mongoDB 實現(xiàn)主從讀寫分離實現(xiàn)的實例代碼》,本文關(guān)鍵詞  mongoDB,實現(xiàn),主從,讀寫,分離,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《mongoDB 實現(xiàn)主從讀寫分離實現(xiàn)的實例代碼》相關(guān)的同類信息!
  • 本頁收集關(guān)于mongoDB 實現(xiàn)主從讀寫分離實現(xiàn)的實例代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    99久久免费国产| 亚洲人123区| 亚洲欧美日韩国产中文在线| 五月天久久比比资源色| 成人国产在线观看| 日韩免费电影网站| 亚洲国产va精品久久久不卡综合| 国产成人无遮挡在线视频| 欧美日韩国产免费一区二区| 中文字幕中文字幕在线一区| 蜜臀av亚洲一区中文字幕| 色悠悠亚洲一区二区| 中文天堂在线一区| 国产米奇在线777精品观看| 欧美精品一卡二卡| 一区二区三区四区五区视频在线观看 | 久久国产婷婷国产香蕉| 91浏览器在线视频| 亚洲视频网在线直播| 国产成人精品午夜视频免费| 欧美一区2区视频在线观看| 夜夜揉揉日日人人青青一国产精品| 丰满少妇久久久久久久| 国产亚洲污的网站| 国产精品1区二区.| 久久久久免费观看| 国产一区二区电影| 久久久99久久精品欧美| 久久不见久久见免费视频7 | 亚洲国产成人私人影院tom| 精品无码三级在线观看视频| 欧美一级欧美三级| 久久精品国产一区二区三| 日韩一区二区在线观看视频| 视频一区中文字幕国产| 69久久夜色精品国产69蝌蚪网| 午夜在线成人av| 欧美一级欧美三级在线观看 | 日韩欧美一区二区在线视频| 日韩av一区二区三区| 91精品啪在线观看国产60岁| 免费成人在线观看| 久久蜜臀精品av| 不卡的看片网站| 亚洲女与黑人做爰| 欧美一区二区三区色| 国内精品久久久久影院色 | av一区二区三区在线| 亚洲色图欧洲色图| 欧美日韩综合在线免费观看| 青青草视频一区| 国产欧美视频一区二区| 91亚洲精品久久久蜜桃| 亚洲电影在线免费观看| 精品欧美黑人一区二区三区| 国产成人免费9x9x人网站视频| 亚洲男同1069视频| 欧美一区二区三区成人| 成人激情图片网| 香港成人在线视频| 日本一区二区免费在线观看视频| 91在线小视频| 久久福利资源站| 亚洲欧美乱综合| 欧美一区二视频| 99久久精品免费看国产 | 香蕉成人啪国产精品视频综合网| 精品美女一区二区| 在线精品国精品国产尤物884a | 亚洲国产精品久久久男人的天堂| 精品国产sm最大网站| 91久久精品一区二区| 久久9热精品视频| 亚洲人成在线播放网站岛国| 日韩午夜在线观看| 色老汉av一区二区三区| 精品亚洲欧美一区| 亚洲一区二三区| 精品盗摄一区二区三区| 欧美伊人久久久久久午夜久久久久| 蜜臂av日日欢夜夜爽一区| 亚洲摸摸操操av| 久久久综合网站| 91精品在线免费观看| 91蜜桃网址入口| 国产精品一级片| 美女视频黄免费的久久| 亚洲一区成人在线| 国产精品动漫网站| 欧美激情自拍偷拍| www激情久久| 日韩欧美在线1卡| 7777精品伊人久久久大香线蕉| 91色婷婷久久久久合中文| 国产69精品久久久久777| 狠狠色丁香久久婷婷综合_中| 亚洲图片自拍偷拍| 亚洲精品伦理在线| 18欧美乱大交hd1984| 欧美国产欧美综合| 久久久国产精品麻豆| 精品久久久久久久久久久院品网| 91麻豆精品国产91久久久久久久久 | 亚洲免费视频中文字幕| 中日韩免费视频中文字幕| 26uuu精品一区二区| 精品欧美一区二区在线观看| 91精品福利在线一区二区三区| 精品视频999| 欧美日韩一区二区欧美激情| 日本久久精品电影| 欧美私人免费视频| 色综合色综合色综合| 在线观看亚洲a| 欧美日韩激情在线| 欧美一级免费大片| 精品国产露脸精彩对白| 久久久久久久网| 国产精品美女久久久久久久久| 中文成人综合网| 一区二区三区在线视频观看| 亚洲资源中文字幕| 天天色图综合网| 毛片基地黄久久久久久天堂| 蜜桃在线一区二区三区| 国产精选一区二区三区| 成人激情开心网| 色婷婷综合久久久中文字幕| 欧美色爱综合网| 日韩欧美国产系列| 久久精品一区八戒影视| 亚洲欧美自拍偷拍| 亚洲宅男天堂在线观看无病毒| 天天射综合影视| 国产精品自拍一区| 99这里只有久久精品视频| 成+人+亚洲+综合天堂| 91福利社在线观看| 欧美一区二区在线免费播放| 久久综合久久久久88| 亚洲三级在线免费| 日韩国产精品久久| 丁香激情综合国产| 欧美日韩精品一区视频| 久久久国产一区二区三区四区小说| 亚洲欧美日韩国产成人精品影院 | 亚洲一区二区三区中文字幕| 秋霞午夜鲁丝一区二区老狼| 国产麻豆视频一区| 欧美日韩免费视频| 国产亚洲一本大道中文在线| 亚洲一区二区三区免费视频| 久久99精品久久久久久国产越南 | 国产精品区一区二区三区| 五月婷婷激情综合网| 高清成人免费视频| 337p亚洲精品色噜噜噜| 国产精品高潮呻吟| 麻豆极品一区二区三区| 91丨九色丨国产丨porny| 日韩欧美亚洲一区二区| 亚洲男女毛片无遮挡| 激情综合色综合久久| 欧美主播一区二区三区| 国产日韩成人精品| 久久国产欧美日韩精品| 欧美调教femdomvk| ㊣最新国产の精品bt伙计久久| 蜜乳av一区二区| 欧美日韩精品一区二区三区四区| 国产色综合久久| 美女一区二区视频| 欧美猛男gaygay网站| 亚洲欧美欧美一区二区三区| 国产不卡免费视频| 精品久久久久香蕉网| 天天射综合影视| 欧美亚洲综合色| 亚洲欧美欧美一区二区三区| 成人网在线播放| 国产网站一区二区| 另类专区欧美蜜桃臀第一页| 欧美日韩五月天| 亚洲综合激情小说| 色综合视频一区二区三区高清| 亚洲国产精品精华液2区45| 国产裸体歌舞团一区二区| 69精品人人人人| 日韩精品欧美成人高清一区二区| 91久久免费观看| 一区二区三区欧美在线观看| 91麻豆产精品久久久久久 | 久久精品国产亚洲5555| 欧美丰满少妇xxxbbb| 亚洲第一成人在线| 91精品国产综合久久婷婷香蕉| 亚洲h在线观看| 欧美日韩国产精选| 日韩高清一级片| 精品精品国产高清a毛片牛牛|