MongoDB--jdbc连接mongo集群

匿名 (未验证) 提交于 2019-12-02 23:00:14
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/stalin_/article/details/84791213

前两节我们介绍了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<ServerAddress> 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的连接池与关系型数据库的不同,他会自动关闭连接,不需要我们手动关闭连接。

喜欢的朋友点个赞哦~~

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!