zoukankan      html  css  js  c++  java
  • 关于配置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,启动服务器,无异常。

  • 相关阅读:
    [十二省联考2019]字符串问题:后缀数组+主席树优化建图
    HAOI2018简要题解
    使用单调队列维护决策三元组实现决策单调性优化DP的一些细节
    杜教筛&min_25筛复习
    分治NTT:我 卷 我 自 己
    高级(并不)多项式算法总结
    导数与微分简单总结(updated)
    退役前的做题记录
    USACO2018DEC PLATINUM
    USACO2018DEC GOLD
  • 原文地址:https://www.cnblogs.com/jinsheng1027/p/11805226.html
Copyright © 2011-2022 走看看