springboot 连接mongodb 属性配置 连接超时

因长时间不使用socket对象而导致连接在服务端给kill,而客户端不知情的情况下,去配置连接属性,下文提及所有mongodb所有列出属性

连接属性记录:

连接URI

连接URI提供了一组指令,驱动程序使用这些指令连接到MongoDB部署。它指导驱动程序如何连接到MongoDB,以及连接时的行为。下图解释了示例连接URI的每个部分:

在这里插入图片描述

连接选项

本节介绍驱动程序支持的MongoDB连接和身份验证选项。您可以将连接选项作为连接URI的参数传递,以指定客户端的行为。

选项名称类型描述默认值
minPoolSizeinteger指定单个连接池中任何时候必须存在的最小连接数。0
maxPoolSizeinteger指定连接池在给定时间可能具有的最大连接数。100
waitQueueTimeoutMSinteger指定线程等待连接可用的最长时间(以毫秒为单位)。120000(120秒)
serverSelectionTimeoutMSinteger指定驱动程序在引发异常之前等待服务器选择成功的最长时间(以毫秒为单位)。30000 (30秒)
localThresholdMSinteger当与副本集中的多个MongoDB实例通信时,驱动程序只会向响应时间小于或等于响应时间最快的服务器加上本地阈值(以毫秒为单位)的服务器发送请求。15
heartbeatFrequencyMSinteger指定驱动程序在尝试确定群集中每个服务器的当前状态之间等待的频率(以毫秒为单位)。10000(10秒)
replicaSetstring指定提供的连接字符串包括多个主机。指定时,驱动程序会尝试查找该集合的所有成员。null
sslboolean指定与MongoDB实例的所有通信都应使用TLS/SSL。被tls选项取代。false
tlsboolean指定与MongoDB实例的所有通信都应使用TLS。取代ssl选项。false
tlsInsecureboolean指定驱动程序应允许TLS连接使用无效主机名。与将tlsAllowInvalidHostnames设置为true具有相同的效果。要以其他方式配置TLS安全约束,请使用自定义SSLContext。false
tlsAllowInvalidHostnamesboolean指定驱动程序应允许TLS连接的证书中存在无效主机名。取代 sslInvalidHostNameAllowed.false
connectTimeoutMSinteger指定Java驱动程序在超时之前等待连接打开的最长时间(以毫秒为单位)。值0指示驱动程序在等待打开连接时永远不要超时。10000 (10秒)
socketTimeoutMSinteger指定Java驱动程序在超时之前等待发送或接收请求的最长时间(以毫秒为单位)。值0指示驱动程序在等待发送或接收请求时永远不要超时。0
maxIdleTimeMSinteger指定Java驱动程序在关闭连接之前允许池连接空闲的最长时间(以毫秒为单位)。值0表示驱动程序允许池集合空闲的时间没有上限。0
maxLifeTimeMSinteger指定Java驱动程序在关闭连接之前继续使用池连接的最长时间(以毫秒为单位)。值0表示驱动程序可以保持池连接打开的时间没有上限。0
journalboolean指定驱动程序必须等待连接的MongoDB实例将提交分组到磁盘上的日志文件以进行所有写入。false
wstring or integer指定写入问题。有关值的更多信息,请参阅 w 选项.1
wtimeoutMSinteger指定写入问题的时间限制(以毫秒为单位)。有关详细信息,请参阅wtimeoutMS 选项。值0指示驱动程序永远不要超时写入操作。0
readPreferencestring指定读取首选项。有关值的更多信息,请参阅readPreference option.primary
readPreferenceTagsstring指定读取首选项标记。有关值的更多信息,请参阅readPreferenceTags option.null
maxStalenessSecondsinteger以秒为单位指定在驱动程序停止与辅助设备通信之前辅助设备的过时程度。最小值为90秒或心跳频率加10秒,以较大者为准。有关详细信息,请参阅maxStalenessSeconds option。未提供参数或显式指定-1表示不应该对辅助文件进行过时检查。-1
authMechanismstring指定在提供凭据时驱动程序应使用的身份验证机制。
默认设置:默认情况下,客户端根据服务器版本选择最安全的机制。有关可能的值,请参阅authMechanism option
authSourcestring指定应验证所提供凭据的数据库。admin
authMechanismPropertiesstring将指定身份验证机制的身份验证属性指定为以冒号分隔的属性和值的列表。有关详细信息,请参阅authMechanismProperties option.null
appNamestring指定在连接握手期间提供给MongoDB实例的应用程序的名称。可用于服务器日志和分析。null
compressorsstring指定一个或多个压缩算法,驱动程序将尝试使用这些算法来压缩发送到连接的MongoDB实例的请求。可能的值包括:zlib、snappy和zstd。null
zlibCompressionLevelinteger指定压缩程度Zlib应该使用来减少对连接的MongoDB实例的请求大小。级别可以在-1到9之间,较低的值压缩得更快(但会产生更大的请求),较大的值压缩的更慢(但会导致更小的请求)。null
retryWritesboolean指定如果由于网络错误导致支持的写入操作失败,驱动程序必须重试这些操作。true
retryReadsboolean指定如果支持的读取操作由于网络错误而失败,驱动程序必须重试这些操作。true
uuidRepresentationstring指定用于读取和写入操作的UUID表示形式。有关更多信息,请参阅的驱动程序文档MongoClientSettings.getUuidRepresentation() method. unspecified
directConnectionboolean指定驱动程序必须直接连接到主机。false
maxConnectinginteger指定池可以同时建立的最大连接数。2
srvServiceNamestring指定的服务名称SRV resource records 驱动程序检索以构造seed list。您必须使用DNS种子列表连接格式在您的连接URI中使用此选项。mongodb

详细请参考mongodb官网

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在 Spring Boot连接 MongoDB 需要在项目的配置文件 application.properties 或者 application.yml 中配置相关的参数。 下面是一个示例配置spring.data.mongodb.uri=mongodb://localhost/test 其中,uri 是 MongoDB连接地址,包括主机名和数据库名。 如果需要设置用户名和密码,可以使用如下配置spring.data.mongodb.uri=mongodb://username:password@localhost/test 另外还可以配置其他的参数,如最大连接数,连接超时时间等。 然后在你的项目中引入 mongodb 的 starter ,在启动类上加上 @EnableMongoRepositories 注解即可。 在你需要操作 MongoDB 数据库的地方直接@Autowired MongoTemplate 即可。 ### 回答2: SpringBoot是Java的一个开发框架,它提供了一种快速搭建基于Spring的应用程序的方法。MongoDB是一个流行的文档数据库,它可以存储非结构化数据,例如JSON。在这篇文章中,我们将讨论如何在SpringBoot应用程序中连接MongoDB配置其相关设置。 连接MongoDB的第一步是通过Maven或Gradle导入其Java驱动程序。在这里,我们将使用Maven,并在pom.xml文件中添加以下依赖项: ``` <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.12.7</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> ``` 这将向我们的应用程序添加MongoDB驱动程序和Spring Data MongoDB。 接下来,我们需要在application.properties文件或application.yml文件中配置MongoDB。在这里,我们将使用application.properties文件,如下所示: ``` spring.data.mongodb.uri=mongodb://localhost:27017/test ``` 这将连接到本地MongoDB实例,并在test数据库中创建一个MongoDB实例。 最后,我们需要在应用程序中创建一个MongoDB存储库类。我们可以通过使用Spring Data MongoDB来轻松完成此操作。以下是一个示例存储库类: ``` @Repository public interface UserRepository extends MongoRepository<User, String> { } ``` 该存储库类将提供与MongoDB连接,并让我们使用已定义的方法访问存储在MongoDB中的数据。 这就是如何在SpringBoot应用程序中连接MongoDB配置其相关设置。通过这种方式,我们可以轻松地访问MongoDB中的数据,而无需编写复杂的代码。 ### 回答3: Spring Boot 是一款非常方便的 Java 开源框架,它能够轻松地搭配各种数据库进行开发,其中也包括 MongoDBMongoDB 是一个非常流行的 NoSQL 数据库,在 Spring Boot 中使用也非常简单。 下面是在 Spring Boot连接 MongoDB配置过程: 1. 添加 MongoDB 依赖 在 pom.xml 中添加以下依赖,这将引入 Spring Data MongoDBMongoDB Java 驱动程序: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.11.1</version> </dependency> ``` 2. 配置 MongoDB 连接信息 在 application.properties 文件中添加以下配置,指定 MongoDB 数据库的主机名、端口和数据库名等信息: ```yaml spring.data.mongodb.uri=mongodb://localhost:27017/mydb ``` 3. 创建 MongoDB 配置类 在项目中新建一个名为 MongoConfig 的类,用于配置 MongoDB 连接信息。代码如下: ```java @Configuration @EnableMongoRepositories(basePackages = "com.example.demo.repository") public class MongoConfig extends AbstractMongoClientConfiguration { @Value("${spring.data.mongodb.uri}") private String uri; @Override public MongoClient mongoClient() { return MongoClients.create(uri); } @Override protected String getDatabaseName() { return "mydb"; } } ``` 该类使用了 AbstractMongoClientConfiguration 类来配置 MongoClient 和数据库名称等信息。其中,@Configuration 注解是告诉 Spring Boot 这是一个配置类,@EnableMongoRepositories 注解会扫描 repository 包下的所有接口,并为每个接口创建一个实现。 4. 创建 MongoDB 数据库模型 在项目中创建一个名为 Book 的类,代表 MongoDB 数据库中的文档,同时使用 @Document 注解指定该类映射到名为 book 的集合中。代码如下: ```java @Document(collection = "book") public class Book { @Id private String id; private String title; private String author; // 省略 getter 和 setter 方法 } ``` 上述代码使用了 @Id 注解表示该字段为文档的唯一标识符,而 @Document 注解指定了该类映射到名为 book 的集合中。 5. 创建 MongoDB 数据库访问接口 在项目中创建一个名为 BookRepository 的接口,继承 MongoRepository 接口,并声明一些操作 MongoDB 数据库的方法,例如根据标题查询书籍等。代码如下: ```java @Repository public interface BookRepository extends MongoRepository<Book, String> { List<Book> findByTitle(String title); } ``` 上例代码使用了 @Repository 注解告诉 Spring Boot 这是一个注入 Bean 的接口,同时声明了一个通过标题查询书籍的方法。 通过上述步骤,我们就可以在 Spring Boot 中成功连接 MongoDB 并操作数据库。在使用过程中还可以根据具体需求自行定制更多的功能,以满足开发需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java入门选手

多谢鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值