mongo驱动连接

mongo驱动连接

标签(空格分隔): Mongodb-Client Mongodb


官方文档:Connection String URI Format

DBA特别推荐:MongoDB Driver:使用正确的姿势连接分片集群

其中要注意的是:mongos链接,推荐配置多台mongos实现负载均衡,因此在配置分片集群时,驱动链接同样应该
配置多个mongos地址

  • 用户访问 mongos 跟访问单个 mongod 类似
  • 所有 mongos 是对等关系,用户访问分片集群可通过任意一个或多个mongos
  • mongos 本身是无状态的,可任意扩展,集群的服务能力为『Shard服务能力之和』与『mongos服务能力之和』的最小值。
  • 访问分片集群时,最好将应用负载均匀的分散到多个 mongos 上

驱动链接格式mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

基础选项

基础选项说明示例
mongodb://必写前缀
host1单点mongod:指定单点服务地址;副本集:以,分隔,配置副本集所有服务地址;分片集群:以,分隔,配置副本集所有mongos服务地址;参照以下示例
:port1端口,默认27017
/database鉴权数据库,默认为admin;建议必填
/database鉴权数据库,默认为admin;建议必填

示例:mongodb://tgor:12345678@192.168.101.41:27017,192.168.101.42:27017,192.168.101.43:27017/db1

副本集选项

副本集选项说明示例
replicaSet副本集名称,需要配置多个服务器节点使用,如果只配置一个节点,驱动只会链接其一

示例:mongodb://tgor:12345678@192.168.101.41:27017,192.168.101.42:27017,192.168.101.43:27017/db1?replicaSet=testRS

连接选项

连接选项说明示例
ssltrue: 使用TLS/SSL初始化连接;默认false: 不使用TLS/SSL初始化连接
connectTimeoutMS链接超时毫秒数,默认是永不超时,建议必填
maxPoolSize连接池连接数最大值,默认100
minPoolSize连接池连接数最小值,默认0
waitQueueMultiple驱动强行限制线程同时等待连接的个数
waitQueueTimeoutMS在超时之前,线程等待连接生效的总时间。如果连接池到达最大并且所有的连接都在使用,这个参数就生效了

【写】选项

【写】选项说明示例
ww = N >= 1:表示写操作,得到N个实例或N个副本集节点确认安全写入,v2.0版本以后为默认选项;0:非安全写入,表示写操作,无需得到实例确认
wtimeoutMS写操作超时毫秒数,0:不限制
journal操作日志选项:true:数据在写入到DB磁盘文件之前,MongoDB会先把操作写入到Journal文件,是确认写入了Journal文件就返回;false:反之;参考:mongodb读写性能分析

注意:(官文
1. 如果设置了wtimeoutMS写操作超时,则必须要设置w>0,驱动要求确认安全写入;
2. wj决定了服务端何时确认写操作成功:The w option and the j option determine when mongod instances acknowledge write operations.(参考下表)

-j:未指定j:truej:false
w:1In memory:写入内存即确认On-disk journal:写入磁盘日志In memory:写入内存即确认
w:”majority”On-disk journal if running with journalingOn-disk journalIn memory

服务选择与发现选项

其他选项说明示例
heartbeatFrequencyMS心跳间隙长度(毫秒)

Java驱动示例

注意:MongoClient会自动创建连接池,因此,大部分情况下,整个JVM应用中只需要有一个MongoClient实例就可以。

private MongoClientURI clientURI = new MongoClientURI("mongodb://tgor:123456@192.168.x.x:27017,192.168.y.y:27017/testdb?readPreference=secondary&connectTimeoutMS=5000&w=0");

private MongoClient mongo = new MongoClient(clientURI);

@Bean
protected Datastore getDatastore() {
    Morphia morphia = new Morphia();
    return morphia.createDatastore(mongo, clientURI.getDatabase());
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果要连接最新版本的MongoDB驱动,可以在Maven中添加以下依赖项: ``` <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver-sync</artifactId> <version>4.4.1</version> </dependency> ``` 注意,这里使用的是mongodb-driver-sync,这是一个同步的驱动程序,也就是说所有的操作都是阻塞的。如果需要使用异步操作,可以使用mongodb-driver-core依赖项。 以下是连接MongoDB数据库的基本步骤: 1. 创建MongoClient对象 使用MongoDB提供的MongoClients类,可以创建MongoDB的客户端对象。可以使用以下代码创建MongoClient对象: ``` MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017"); ``` 其中,"mongodb://localhost:27017"表示要连接MongoDB数据库的地址和端口号。 2. 获取数据库对象 使用MongoClient对象的getDatabase方法,可以获取MongoDB数据库对象。可以使用以下代码获取数据库对象: ``` MongoDatabase database = mongoClient.getDatabase("mydb"); ``` 其中,"mydb"是要连接的数据库名称。 3. 获取集合对象 使用MongoDatabase对象的getCollection方法,可以获取MongoDB集合对象。可以使用以下代码获取集合对象: ``` MongoCollection<Document> collection = database.getCollection("mycollection"); ``` 其中,"mycollection"是要操作的集合名称。 4. 对集合进行操作 使用MongoCollection对象,可以对MongoDB集合进行增删改查等操作。例如,使用以下代码插入一条文档到集合中: ``` Document document = new Document("name", "John Doe") .append("age", 30) .append("gender", "male"); collection.insertOne(document); ``` 以上就是连接MongoDB数据库的基本步骤。当然,还可以对MongoDB进行更多高级操作,具体可以参考MongoDB的Java驱动程序文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值