当前位置: 首页 > news >正文

mongodb 连接池配置

参考官方描述:

如果spring使用以下mongodb的配置,则默认是没有连接池的

spring:data:mongodb:host: 地址port: 27017database: 数据库名username: 账号password: 密码

 每隔一两分钟没有去请求的话就会断开连接重连,每次都要等待5-10秒之间才重新连接上,请求速度很慢,这一点确实非常不友好。出现这种问题就是maxIdleTimeMS时间太长,缩短每次连接删除和关闭之前保持的空闲状态等待时间就可以避免这个问题,但也会造成连接池的频繁连接和关闭。每次打开和关闭控制台打印如下提示:

Closed connection [connectionId{localValue:11, serverValue:1607}] to xxx.cc:27017 because there was a socket exception raised by this connection.
Opened connection [connectionId{localValue:21, serverValue:1623}] to xxx.cc:27017

所以,mongodb的配置就尽量不要用上面的方式来配,需要使用uri的方式来去配,不需要在java代码中去写配置类,不需要在java代码中去写配置类,不需要在java代码中去写配置类

spring:data:mongodb:uri: mongodb://数据库账号:数据库密码@数据库地址:27017/数据库名称?connectTimeoutMS=10000&socketTimeoutMS=10000&maxPoolSize=10000&minPoolSize=10&maxIdleTimeMS=1000&readPreference=primary&retryWrites=true

uri的前半部分:注意符号格式是固定 

 mongodb://数据库账号:数据库密码@数据库地址:27017/数据库名称

 uri的后半部分是一些额外配置选项,使用 " ? "这个问号进行标识分割,每一个配置选项之间使用" & "符号来衔接。

?connectTimeoutMS=10000&socketTimeoutMS=10000

&maxPoolSize=1000&minPoolSize=10&maxIdleTimeMS=10000

&readPreference=primary&retryWrites=true

 connectTimeoutMS
在超时之前尝试连接的时间(以毫秒为单位)。默认值为 10,000 毫秒,但特定驱动程序可能具有不同的默认值
socketTimeoutMS
在尝试超时之前尝试在套接字上发送或接收的时间(以毫秒为单位)。默认值为永不超时,尽管不同的驱动程序可能会有所不同
maxPoolSize连接池中的最大连接数。默认值为 。100
minPoolSize

连接池中的最小连接数。默认值为 。0

maxIdleTimeMS

连接在删除和关闭之前可以在池中保持空闲状态的最大毫秒数。

并非所有驱动程序都支持此选项。

readPreference指定此连接的读取首选项。
retryWrites启用可重试写入。
 

需要特别注意maxIdleTimeMS这个时间的设置,多次测试证实了:超过设置的指定时间后所有线程池的空闲线程连接会被自动关闭,关闭后所有线程池空闲线程会重新连接

参数配置,根据你们需求来 ,我只是给出个示例

 更多参数选项参考地址

测试连接断开后,控制台日志如下:已经开启指定数量的线程池无误

http://www.lryc.cn/news/57891.html

相关文章:

  • 数据在内存中的存储(深度剖析)
  • python 实现二叉搜索树的方法有哪些?
  • ORM概述
  • 程序员必知必会7种UML图(类图、序列图、组件图、部署图、用例图、状态图和活动图)画法盘点
  • 基于asp的搜索引擎开发和实现
  • 代码随想录刷题-字符串-实现 strStr()
  • 前端已死?金三银四?你收到offer了吗?
  • C生万物 | 十分钟带你学会位段相关知识
  • Spring Boot基础学习之(十):修改员工的信息
  • 闭关十几天,我完成了我的毕业设计
  • 认识rust的项目管理工具--cargo
  • 面试常问的Linux之 I/O 复用
  • MySQL-binlog+dump备份还原
  • 互联网络-单级互联网络
  • 上海亚商投顾:沪指四连阳重回3300点 中字头个股再发力
  • LeetCode:150. 逆波兰表达式求值—栈
  • C/C++每日一练(20230410) 二叉树专场(4)
  • 策化整理1
  • 【服务通信自定义srv调用3----客户端的优化】
  • React跨域解决方案
  • 内存五区的概念,内存池技术的诞生。
  • 力扣:字符串中的第一个唯一字符(C++实现)
  • 攻防世界 favorite_number mfw、[BJDCTF2020]ZJCTF,不过如此
  • SummingMergeTree
  • JUC并发编程基础篇第一章之进程/并发/异步的概念[理解基本概念]
  • c语言—指针进阶
  • 总结二分法
  • 二叉搜索树和AVL树
  • 计算机体系结构量化研究方法【2】高速缓存Cache
  • 初识设计模式 - 迭代器模式