/**
*
*/
package me.yumin.mongo.client.etc;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
import me.yumin.mongo.client.domain.valueobject.MongoDsnVO;
import com.mongodb.Mongo;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;
import com.mongodb.ServerAddress;
/**
* @author yumin
*
*/
public class MongoConnector {
/**
*
* @param dsn
* @return
* @throws UnknownHostException
*/
public static Mongo getMongo(MongoDsnVO dsn) throws UnknownHostException {
MongoClient mongo = null;
if (null != dsn) {
// 主机列表
List<String> servers = dsn.getServers();
if (null != servers && 0 < servers.size()) {
List<ServerAddress> seeds = new ArrayList<ServerAddress>();
for (String server : servers) {
seeds.add(new ServerAddress(server));
}
// 设定选项
MongoClientOptions options = new MongoClientOptions.Builder()
.autoConnectRetry(dsn.getAutoConnectRetry())
.connectionsPerHost(dsn.getConnectionsPerHost())
.connectTimeout(dsn.getConnectTimeout())
.maxWaitTime(dsn.getMaxWaitTime())
.socketTimeout(dsn.getSocketTimeout())
.threadsAllowedToBlockForConnectionMultiplier(dsn.getThreadsAllowedToBlockForConnectionMultiplier())
.build();
// 建立连接
mongo = new MongoClient(seeds, options);
}
}
return mongo;
}
}