关于配置mongoDB连接池

首先列一下mongoDB连接的一些基本配置信息

mongoDB.user=
mongoDB.password=
mongoDB.port=27017
mongoDB.databaseName=job
mongoDB.address=10.13.45.166

mongoDB.collection=job
mongoDB.collection2=ReadRecord
#连接池最大连接数
mongoDB.connectionsPerHost=20
#连接池最小连接数
mongoDB.minConnectionsPerHost=5
#线程队列数,此值和连接池的乘积为最大连接数,超出这个数会让请求线程等待
mongoDB.threadsAllowedToBlockForConnectionMultiplier=5
#单位为ms,默认0,无限时间,客户端访问服务器的超时时间
mongoDB.connectTimeout=10000
#最大等待时间,若连接都被使用,线程的最大等待时间
mongoDB.maxWaitTime=10000
#线程最大空闲时间,默认0,无限制
mongoDB.maxConnectionIdleTime=0
#线程的生命时间
mongoDB.maxConnectionLifeTime=0
#客户端连接到数据库后,等待数据返回的最大等待时间,默认为0,无限制
mongoDB.socketTimeout=10000

 

这些是比较重要的信息,再说说今天开发遇到的问题,就是配置完mongoDB的连接池启动项目后,控制台一直在打印close Connection 然后 openConnection ,就是5个最小连接数一直在重复的

关闭然后创建,这样多了很多无用的服务器负载,本意是连接创建后一直等待调用。然后查了一下貌似mongoDB 4.0以上的版本才支持spring的事务管理,并且mongoDB的驱动jar包中内置了连

接池,并且线程安全。那就说明人家给我们都已经准备好了,那就是我配置的连接池参数出现了问题,首先注意到的是maxConnectionLifeTime(连接的生命时间),设0之后发现没有改善。

  最后发现是maxConnectionIdleTime   连接的最长等待时间,连接被创建后,等待被调用,一直没被调用,就销毁了,然后为了保持最小连接数,就一直在close+open,设0,启动服务器,无异常。

posted @ 2019-11-06 15:01  无弦琴  阅读(4783)  评论(0编辑  收藏  举报