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