MongoDB详解--Java连接mongo集群(工具类)

前两节我们介绍了MongoDB的一些特性以及基本操作。接下来我们来学习一些如何使用jdbc连接MongoDB集群。

为什么不先讲连接单个MongoDB而是直接连接集群呢。其实是因为MongoDB通常存储的数据量较大。所以一般都是以集群的形式搭建的。所以我们在这里直接就演示如何连接MongoDB集群。

这里我直接提供一个创建Mongo连接池的工具类。当你需要操作MongoDB进行增删改查时直接调用即可返回一个mongoClient对象。

public class MongoUtils {

	public static MongoClient mongoClient = null;

	private static String USERNAME;// 用户名
	private static String PASSWORD;// 密码
	private static String DBNAME;// mongo库名
	private static int connectsNum = 30;// 每台服务器连接的最大连接数
	private static int threadsAllowedToBlockForConnectionMultiplier = 10;// 线程队列数
	private static List serverList = new ArrayList<>();// 服务器列表

	public static MongoClient initMongo() {
		try {
			serverList.add(new ServerAddress("192.168.0.1", 27017));// 注,ip和端口以实际为准,这里只是测试
			serverList.add(new ServerAddress("192.168.0.2", 27017));// 注,ip和端口以实际为准,这里只是测试
			serverList.add(new ServerAddress("192.168.0.3", 27017));// 注,ip和端口以实际为准,这里只是测试

			// 连接池设置 注意readPreference参数
			MongoClientOptions options = MongoClientOptions.builder().connectTimeout(6000).socketTimeout(0)
					.connectionsPerHost(connectsNum).maxConnectionIdleTime(6000)
					.threadsAllowedToBlockForConnectionMultiplier(threadsAllowedToBlockForConnectionMultiplier)
					.readPreference(ReadPreference.secondaryPreferred()).build();
			// 认证
			MongoCredential credential = MongoCredential.createCredential(USERNAME, DBNAME, PASSWORD.toCharArray());
			mongoClient = new MongoClient(serverList, Arrays.asList(credential), options);

		} catch (Exception e) {
			e.printStackTrace();
		}
		return mongoClient;
	}

}

注:MongoDB的连接池与关系型数据库的不同,他会自动关闭连接,不需要我们手动关闭连接。

 

喜欢的朋友点个赞哦~~

你可能感兴趣的:(Java,MongoDB)