Java使用Jongo链接MongoDB(配置链接池)

因为项目使用了MongoDB作为数据源,最近因为访问量的激增数据库老是崩,虽然我们使用的云数据库,有客服帮我们解决问题,但是毕竟是我们的项目的问题,根本原因还是要从我们项目入手解决问题。

jar包:mongo-java-driver-3.4.0.jar
jongo-1.3.0.jar
之前我们项目的链接方式:

MongoCredential credential = MongoCredential.createCredential(userName, database, pwd.toCharArray());
ServerAddress serverAddress = new ServerAddress(host, port);
MongoClient mongoClient = new MongoClient(serverAddress, Arrays.asList(credential));
DB mondb = mongoClient.getDB(database);
jongo = new Jongo(mondb);

之前没注意过这块,出问题了就研究下。项目中是使用Jongo操作MongoClient去操作的数据库。刚开始一直不知道数据库链接池在哪配置,一直以为没有链接池,最后从网上查资料说MongoClient其实就是一个链接池。它可以配置一些链接池信息,不用再引入三方链接池。然后就改改呗。
最后改成了这样

ServerAddress serverAddress = new ServerAddress(host, port);
        MongoCredential credential = MongoCredential.createCredential(userName, database, pwd.toCharArray());
        MongoClientOptions.Builder build = new MongoClientOptions.Builder();
        build.minConnectionsPerHost(10);
        build.connectionsPerHost(300);   //与目标数据库能够建立的最大connection数量为50
        build.threadsAllowedToBlockForConnectionMultiplier(500); //如果
        build.maxWaitTime(1000*60*2);
        build.connectTimeout(1000*60*1);    //与数据库建立连接的timeout设置为1分钟
        MongoClientOptions myOptions = build.build();
        //数据库连接实例
        MongoClient mongoClient = new MongoClient(serverAddress,Arrays.asList(credential), myOptions);
        DB mondb = mongoClient.getDB(database);
        jongo = new Jongo(mondb);

就完成了一个链接池配置。
上线,over。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值