MongoOptions


    java驱动中,可以在获取mongo实例时,指定一些参数,如下:

    List<ServerAddress> replicaSetSeeds = new ArrayList<ServerAddress>();
    String[] serverList = clusterUrls.split(",");// 逗号分隔
    for (String url : serverList) {
    ServerAddress address = new ServerAddress(url.split(":")[0], Integer.parseInt(url.split(":")[1]));
    replicaSetSeeds.add(address);
    }

    MongoOptions options = new MongoOptions();
    options.connectionsPerHost = 100;//链接池数量 默认10 。避免Out of semaphores to get db connection error
    options.autoConnectRetry = true;
    options.slaveOk = true;

    mongo = new Mongo(replicaSetSeeds,options);



    参数列表如下:



    #控制系统在发生连接错误时是否重试 ,默以为false --boolean

    mongo.options.autoConnectRetry=false

    #每个主机答应的连接数(每个主机的连接池大小),当连接池被用光时,会被阻塞住 ,默以为10 --int

    mongo.options.connectionsPerHost=10

    #multiplier for connectionsPerHost for # of threads that can block if connectionsPerHost is 10, and threadsAllowedToBlockForConnectionMultiplier is 5, then 50 threads can block more than that and an exception will be throw --int

    mongo.options.threadsAllowedToBlockForConnectionMultiplier=5

    #被阻塞线程从连接池获取连接的最长等待时间(ms) --int

    mongo.options.maxWaitTime

    #在建立(打开)套接字连接时的超时时间(ms),默以为0(无穷) --int

    mongo.options.connectTimeout=0

    #套接字超时时间;该值会被传递给Socket.setSoTimeout(int)。默以为0(无穷) --int

    mongo.options.socketTimeout=0

    #This controls whether or not to have socket keep alive turned on (SO_KEEPALIVE). defaults to false --boolean

    mongo.options.socketKeepAlive=false

    #Override the DBCallback factory. Default is for the standard Mongo Java driver configuration --DBCallbackFactory

    mongo.options.dbCallbackFactory

    #//指明是否答应驱动从次要节点或者奴隶节点读取数据,默以为false --boolean

    mongo.options.slaveOk=false

    #假如为true,驱动每次update后会发出一个getLastError命令来保证成功,默以为false --boolean

    mongo.options.safe=false

    #If set, the w value of WriteConcern for the connection is set to this. Defaults to 0; implies safe = true --int

    mongo.options.w=0

    #If set, the wtimeout value of WriteConcern for the connection is set to this. Defaults to 0; implies safe = true --int

    mongo.options.wtimeout=0

    #Sets the fsync value of WriteConcern for the connection. Defaults to false; implies safe = true --boolean

    mongo.options.fsync=false