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

南昌网站建设优化公司排名建筑公司网站设计思路

南昌网站建设优化公司排名,建筑公司网站设计思路,教育网站开发报告,企业网站托管方案内容手打不易,如果转摘,请注明出处! 注明原文:http://zhangxiaofan.blog.csdn.net/article/details/144341407 一、引言 在 Spring Boot 应用中使用 MongoDB 时,合理配置连接池可以显著提升数据库访问的性能和稳定性。默…

手打不易,如果转摘,请注明出处!

注明原文:http://zhangxiaofan.blog.csdn.net/article/details/144341407


一、引言

在 Spring Boot 应用中使用 MongoDB 时,合理配置连接池可以显著提升数据库访问的性能和稳定性。默认情况下,Spring Data MongoDB 会使用 MongoDB Java 驱动的默认连接池配置,但在生产环境中,我们通常需要根据业务需求自定义参数(如最大连接数、超时时间等)。本文将详细介绍如何在 Spring Boot 中自定义 MongoDB 连接池,适合新手快速上手。

二、环境准备

技术版本

  • Spring Boot 2.x.x
  • MongoDB 3.x(Spring Data MongoDB 自动依赖)
  • MongoDB 服务(本地或远程,版本 >= 4.0)

 依赖配置

在 pom.xml 中添加 MongoDB 依赖(Spring Boot 起步依赖会自动包含驱动):

<dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-data-mongodb</artifactId>  
</dependency>  

 三、核心参数

1. 连接池大小参数

参数名作用推荐值(生产环境)
maxConnectionPoolSize单个主机的最大连接数,超过时请求排队根据业务并发量调整,一般 50-200
minConnectionPoolSize保持的最小空闲连接数,减少新建连接开销5-20(视访问频率)

2. 超时参数

参数名作用推荐值
connectTimeoutMS建立连接的超时时间10-30 秒
socketTimeoutMS读写数据的超时时间(0 表示不超时)30-60 秒
serverSelectionTimeoutMS选择可用服务器的超时(如副本集切换)5-15 秒

四、配置连接池

1.properties配置

# application.yml示例  
spring:  data:  mongodb:  uri: mongodb://username:password@localhost:27017/databaseName  # 连接池参数  connection-timeout: 5000  # 连接超时时间(毫秒)  max-wait-time: 1000       # 等待连接的最大时间(毫秒)  max-inactive: 60000       # 连接空闲超时时间(毫秒)  max-size: 50              # 最大连接数  min-size: 10              # 最小连接数  threads-allowed-to-block-multiplier: 5  # 允许阻塞的线程数乘数  

2.连接串配置

spring.data.mongodb.uri=mongodb://user:password@host:port/database?maxPoolSize=50&minPoolSize=5&connectTimeoutMS=15000&socketTimeoutMS=30000&serverSelectionTimeoutMS=20000  


3.Java代码配置

import com.mongodb.ConnectionString;  
import com.mongodb.MongoClientSettings;  
import com.mongodb.client.MongoClient;  
import com.mongodb.client.MongoClients;  
import org.springframework.context.annotation.Bean;  
import org.springframework.context.annotation.Configuration;  
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;  @Configuration  
public class MongoConfig extends AbstractMongoClientConfiguration {  private final String databaseName = "your_database";  private final String connectionUri = "mongodb://host:port";  @Override  protected String getDatabaseName() {  return databaseName;  }  @Override  @Bean  public MongoClient mongoClient() {  // 解析连接字符串  ConnectionString connectionString = new ConnectionString(connectionUri);  // 构建连接池配置  MongoClientSettings settings = MongoClientSettings.builder()  .applyConnectionString(connectionString)  // 自定义连接池参数  .maxConnectionPoolSize(50)          // 最大连接数  .minConnectionPoolSize(5)           // 最小空闲连接数  .connectTimeout(Duration.ofMillis(15000))  // 连接超时  .socketTimeout(Duration.ofMillis(30000))   // 套接字超时  .serverSelectionTimeout(Duration.ofMillis(20000)) // 服务器选择超时  // 其他配置:SSL、认证、负载均衡策略等  .sslEnabled(false)                   // 是否启用 SSL  .build();  return MongoClients.create(settings);  }  
}  

五、查看是否生效

六、实践建议

  • 生产环境建议通过JVM监控工具(如Prometheus+Grafana)持续跟踪连接池状态。
  • 根据业务流量波动,动态调整连接池参数(如高峰期增大max-size
  • 根据业务需求调整参数:不同的业务场景对连接池的需求不同,需要根据实际负载进行调整。

  • 监控连接池状态:使用监控工具(如 MongoDB 自带的监控工具)来观察连接池的使用情况,及时发现潜在问题。

  • 避免连接泄漏:确保在代码中正确关闭数据库连接,避免连接泄漏导致连接池耗尽。

  • 定期测试和优化:定期对连接池配置进行测试和优化,确保其始终处于最佳状态。


文章转载自:

http://LTj2eqEw.qhqgk.cn
http://R9UYqZG2.qhqgk.cn
http://O4KEHvwI.qhqgk.cn
http://tXqprlNv.qhqgk.cn
http://LlC8wyvg.qhqgk.cn
http://lBpEBepn.qhqgk.cn
http://hzZTmFr4.qhqgk.cn
http://ujMJ9PPr.qhqgk.cn
http://OFQdGnNg.qhqgk.cn
http://6KpwvyUS.qhqgk.cn
http://9NQGI8kH.qhqgk.cn
http://79bxpXda.qhqgk.cn
http://yL2x3UJ7.qhqgk.cn
http://DkPy2Jml.qhqgk.cn
http://8xZle13n.qhqgk.cn
http://brUpu2Ip.qhqgk.cn
http://rEHLq4sL.qhqgk.cn
http://ZpsX3LlF.qhqgk.cn
http://l2Z3PP9h.qhqgk.cn
http://mqnTQecf.qhqgk.cn
http://8IvDGvHK.qhqgk.cn
http://98kINUjH.qhqgk.cn
http://vHKu9q71.qhqgk.cn
http://0n634Pnn.qhqgk.cn
http://g49FSa4S.qhqgk.cn
http://mbXFGvif.qhqgk.cn
http://BBiLrLqZ.qhqgk.cn
http://n4j2fWgv.qhqgk.cn
http://M4rp5zBa.qhqgk.cn
http://iHqJMnJp.qhqgk.cn
http://www.dtcms.com/wzjs/705411.html

相关文章:

  • 公司做网站app入什么科目怎么查看自己的网站是否被百度收录
  • 在线教育网站模板wordpress批量插件
  • 超酷网站欣赏定制开发一个网站多少钱
  • php网站留言板漏洞千川广告投放平台
  • 能打开任何网站的浏览器小米手机如何做游戏视频网站
  • 牡丹江建设行业协会网站电商资源网站
  • 怎么把自己做的网站让别人收到网易博客搬家wordpress
  • 网站须知弹幕播放器 wordpress
  • 网站做推广的团队互联网小项目
  • win10怎么做网站移动建站是什么意思
  • 个人博客网站设计重庆给商家企业做网站
  • 大型网站的建设做app简单还是网站
  • wordpress网站加密码破解wordpress主题子主题运行速度
  • 上海建设网站费用客户案例 网站建设
  • 济源市建设管理处网站重新安装wordpress
  • 公司网站在国外打开很慢使用cdn好还是国外租用服务器好网页和网站的不同
  • 保定做网站苏州工业园区属于哪个区
  • 工程机械网站模板推销网站
  • 包头建设网站网站建设基本流程信息技术
  • 如何用万网建设网站企业做网站需要什么条件
  • yii2 网站开发微信如何创建自己的公众号
  • 打造公司的网站免费网站制作模板
  • 网站推广怎么做流量大apache wordpress配置
  • php 网站源代码推广文案模板
  • 网站关键词seo费用中卫网站推广网络营销
  • wordpress精致建站越野车网站模板
  • 模板建站和自助建站12380网站建设的意见建议
  • 如何安装网站程序电子商务网站建设策划
  • 建设银行宁波分行招聘网站食品包装设计分析
  • 昌乐做网站创意设计绘画