热点
深度学习驱动移动应用,智联万物新时代,reasoning_content:我们要求以内容管理者的口吻,写一个与“技术、科技”相关,关于[深度学习驱动移动应用:开启万物智能互联新时代]的标题要求直接输出一个标题,不要加说明,简短精炼,30字以内nn内容管理者的口吻:通常比较正式、专业,注重概括性和吸引力标题需要反映深度学习驱动移动应用,以及万物智能互联新时代的主题nn可能的深度学习赋能移动应用,智联万物新纪元 但字数略超?深度学习驱动移动应用,开启智联新时代 或者更简洁:深度学习驱动移动应用:智联万物新时代 注意原题中已有方括号内容,但我们需要自己写标题,不要直接引用原方括号nn注意:要求是写一个与‘技术、科技’相关,关于‘[深度学习驱动移动应用:开启万物智能互联新时代]’的标题,即主题就是这个方括号内的内容,但标题可以不同表达nn简洁:例如深度学习赋能移动应用,智联万物 但需要包含新时代的意思nn尝试:深度学习驱动移动应用,智联万物新篇 或者 移动应用深度学习,开启智联新时代 字数控制nn最佳:深度学习驱动移动应用,智联万物新时代 正好13个字?数一下:深度学习驱动移动应用(8字),智联万物新时代(6字),共14字符合nn或者更正式:深度学习赋能移动应用,迈向万物智联新时代 字数稍多16字,也可以nn因为是内容管理者,可能用“赋能”、“引领”等词确保不超过30字即可nn直接输出标题
资源整合:数据驱动智联解码之道,reasoning_content:我们要求以资源整合者的口吻,写一个与“技术、科技”相关,关于[数据驱动:移动互联时代应用赋能万物智联的解码之道]的标题注意是标题,要简短精炼,30字以内资源整合者的口吻,应该体现出整合、连接、驱动、赋能等概念可能的方向:数据驱动、万物智联、解码之道、移动互联时代用词要大气,有整合感比如:数据整合:移动互联解码万物智联 但不够试试:资源整合:数据驱动赋能智联时代 或者 数据汇聚:移动互联智联解码之道 但注意要体现资源整合者的口吻,像是从整合者角度出发可能更直接:整合数据,驱动万物智联 但字数最终数据驱动,资源整合:移动互联赋能智联解码 超了精简:数据整合:移动互联时代的智联解码之道 15字,可以但要求资源整合者口吻,最好出现整合或资源字样或者:资源整合:数据赋能万物智联解码 12字再想想更精准:资源整合,数据驱动:智联时代解码之道 14字或者直接:数据驱动·资源整合:移动互联智联解码 13字注意原标题有移动互联时代应用赋能万物智联的解码之道,我们提炼核心最终输出一个标题,不要加说明我决定用:数据整合:移动互联时代的智联解码之道 但整合和资源的关系,资源整合者可能更强调资源一词改为:资源整合:数据驱动智联解码之道 12字完美
16 9 月 2026, 周三

MongoDB主从读写分离实现方法

今天就跟大家聊聊有关“MongoDB主从读写分离如何实现,过程是怎样”的内容,可能很多人都不太了解,为了让大家认识和更进一步的了解,小编给大家总结了以下内容,希望这篇“MongoDB主从读写分离如何实现,过程是怎样”文章能对大家有帮助。
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();
  }
 

dawei

【声明】:郑州站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

您错过了

深度学习驱动移动应用,智联万物新时代,reasoning_content:我们要求以内容管理者的口吻,写一个与“技术、科技”相关,关于[深度学习驱动移动应用:开启万物智能互联新时代]的标题要求直接输出一个标题,不要加说明,简短精炼,30字以内nn内容管理者的口吻:通常比较正式、专业,注重概括性和吸引力标题需要反映深度学习驱动移动应用,以及万物智能互联新时代的主题nn可能的深度学习赋能移动应用,智联万物新纪元 但字数略超?深度学习驱动移动应用,开启智联新时代 或者更简洁:深度学习驱动移动应用:智联万物新时代 注意原题中已有方括号内容,但我们需要自己写标题,不要直接引用原方括号nn注意:要求是写一个与‘技术、科技’相关,关于‘[深度学习驱动移动应用:开启万物智能互联新时代]’的标题,即主题就是这个方括号内的内容,但标题可以不同表达nn简洁:例如深度学习赋能移动应用,智联万物 但需要包含新时代的意思nn尝试:深度学习驱动移动应用,智联万物新篇 或者 移动应用深度学习,开启智联新时代 字数控制nn最佳:深度学习驱动移动应用,智联万物新时代 正好13个字?数一下:深度学习驱动移动应用(8字),智联万物新时代(6字),共14字符合nn或者更正式:深度学习赋能移动应用,迈向万物智联新时代 字数稍多16字,也可以nn因为是内容管理者,可能用“赋能”、“引领”等词确保不超过30字即可nn直接输出标题