MongoDB java连接参数说明

6 篇文章 0 订阅
5 篇文章 0 订阅

    MongoDB在java中使用时,客户端连接参数说明;

    此说明居于mongo驱动包:mongodb-driver-3.4.2,官方驱动下载地址:http://central.maven.org/maven2/org/mongodb/mongo-java-driver/

    缘起一次mongo连接,客户端连接不会释放;

    客户端不会释放带来的问题是:

         1、如果在某次请求过多时,开启的线程过多,导致连接猛增,快速打满连接池,建立的连接不会释放;

         2、大量不用的连接存放在连接池中,占用mongo连接资源;

    经排查,mongo连接池中,有一个参数:maxIdleTimeMS未设置,在没有设置此参数时,mongo驱动默认为0,如果为0,则连接池永远不会释放,不管该连接是否会被使用。

 

源码:在ConnectionString类中,参考官方说明:https://docs.mongodb.com/manual/reference/connection-string/#connections-connection-options

通过源码截图可以看出,参数名称不区分大小写。

说明(部分):

类型参数名说明
连接选项ssl连接是否使用SSL进行连接,默认根据url来
connectTimeoutMS连接超时时间,单位为毫秒,默认为0,永不超时
socketTimeoutMS发送或者接收socket的超时时间,单位为毫秒,默认为0,永不超时
连接池maxPoolSize连接池最大数,默认值为100,主要是参考客户端应用个数以及mongo的服务器端设置的最大连接处来评估每个客户端最大开启的数量。
minPoolSize连接池中最小连接存活数,默认为0,启动时,初始化的最小连接数。
maxIdleTimeMS

一个连接在池中的最大空闲时间,如果空闲超过此时间,则会被移除连接池,同时关闭连接,释放连接资源;

默认为0,永不释放。

单位为毫秒。

maxLifeTimeMS
最大有效存活时间,默认为0,永远存活
  
waitQueueMultiple等待最大连接数,与maxPoolSize合用,传递给驱动中的参数
threadsAllowedToBlockForConnectionMultiplier
默认为5
waitQueueTimeoutMS等待获取连接最大超时时间,默认为0,永不超时。
   
   

 

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值