详解Java连接MongoDB集群的几种方式

  

<强>先决条件

  

先运行mongodb肯定是必须的,然后导入以下包:

        进口com.mongodb.MongoClient;   进口com.mongodb.MongoClientURI;   进口com.mongodb.ServerAddress;   进口com.mongodb.MongoCredential;   进口com.mongodb.MongoClientOptions;      

<强> MongoClient

  

MongoClient()实例表示到数据库的连接池;你将只需要MongoClient类的一个实例,即使有多个线程也是一样。

  

重要:   

通常,您只能为给定的MongoDB部署(例如独立,副本集或分片群集)创建一个MongoClient实例,并在您的应用程序中使用它。但是,如果您创建了多个实例:

  
      <李>所有资源使用限制(例如,最大连接等)适用于每个MongoClient实例。   <李>要关闭一个实例,调用MongoClient.close()来清理资源。   
  

<>强连接到一个独立的MongoDB实例

  

以下几种方法:

  

1。         MongoClient MongoClient=new MongoClient (“host1 ", 27017); & # 8203;之前      

2。您可以指定theMongoClientURI连接字符串。

        MongoClient MongoClient=new MongoClient(新MongoClientURI (mongodb://host1:27017 "));      

<>强连接到副本集

  

MongoDB将自动发现主要和副本。

  

您可以指定成员使用theMongoClientURI连接字符串:

  

指定两个副本集:

  

代码如下:MongoClient MongoClient=new MongoClient(新MongoClientURI (“host2:27017, mongodb://host1:27017 host3:27017 ")); & # 8203;

  

至少有一个副本集和副本集选项的成员:

  

代码如下:MongoClient MongoClient=new MongoClient(新MongoClientURI (“host2:27017, mongodb://host1:27017 host3:27017/& # 63; replicaSet=myReplicaSet "));

  

你可以使用ServerAddress指定副本集中的所有成员。

        MongoClient MongoClient=new MongoClient (   数组。asList(新ServerAddress (“host1”, 27017年),   新ServerAddress (“host2”, 27017年),   新ServerAddress (“host3”, 27017)));      

<>强连接到分片集群

  

要连接到分片群集,请将蒙戈实例或多个实例指定给MongoClient构造函数。

  

连接到一个蒙戈实例:

        MongoClient MongoClient=new MongoClient (“localhost”, 27017年),      

连接多个蒙戈实例:

        MongoClient MongoClient=new MongoClient(新MongoClientURI (mongodb://host1:27017, host2:27017));      MongoClient MongoClient=new MongoClient (   数组。asList(新ServerAddress (“host1”, 27017年),   新ServerAddress (“host2”, 27017)));   之前      

<>强连接选项

  

您可以使用MongoClientURI或MongoClientOptions或两者来指定连接设置。

  

例如,您可以在MongoClientURI连接字符串中指定TLS/SSL和身份验证设置:

        MongoClientURI uri=new MongoClientURI (“mongodb://user1: pwd1@host1/& # 63; authSource=db1& ssl=true”);   MongoClient MongoClient=new MongoClient (uri);      

您还可以使用MongoClientOptions来指定TLS/SSL和MongoCredential的认证信息:

        字符串的用户;//用户名   字符串数据库;//数据库中用户的名称定义   char[]密码;//密码字符数组//?   MongoCredential凭据=MongoCredential。createCredential(用户、数据库密码);   MongoClientOptions选项=MongoClientOptions.builder () .sslEnabled(真正的).build ();   MongoClient MongoClient=new MongoClient(新ServerAddress (“host1”, 27017年),   arrays . aslist(凭证),   选项);      

这里只是官方给的简单演示连接,不可直接用于生产环境,比如:这里边没有配置读写关注,读取偏好,连接池配置等都是默认的。而这些默认值直接用于生产环境肯定是不行的。

  

至于生产环境怎么配置,要根据业务情况来实际分析,我在后边会提供一个参考。

  

生产环境配置见:mongodb连接配置实践
  

  

参考官方文档:https://mongodb.github.io/mongo-java-driver/3.4/driver/tutorials/connect-to-mongodb/

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

详解Java连接MongoDB集群的几种方式