java - Spring Boot 和 mongodb 中的连接池

标签 java spring mongodb spring-boot connection-pooling

我正在经历 spring boot 应用程序和 mongoDb 连接 POC。 我添加了以下依赖项:

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

我还浏览了具有以下属性的 mongoB 属性:https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html

请问我们如何在这里定义连接池机制?

最佳答案

您不能直接使用应用程序属性来执行此操作。您需要使用 MongoClientOptions 来配置连接池的各个方面。

看看 documentation用于各种可用选项。

这是一个简单的例子。

@Bean(name="mongoTempl")
public MongoTemplate mongoTempl() throws Exception {
     return new MongoTemplate(createMongoClient(new ServerAddress(host, port))
                              ,dbName);
}


Mongo createMongoClient(ServerAddress serverAddress) {
final MongoClientOptions options = MongoClientOptions.builder()
        .threadsAllowedToBlockForConnectionMultiplier(...)
        .connectionsPerHost(...)
        .connectTimeout(...)
        .maxWaitTime(...)
        .socketKeepAlive(...)
        .socketTimeout(...)
        .heartbeatConnectTimeout(...)
        .minHeartbeatFrequency(...)
        .build();

        return new MongoClient(serverAddress, options);
}

关于java - Spring Boot 和 mongodb 中的连接池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50698222/

相关文章:

java - Spring mvc 将数据发送到 Controller

java - 无法从 firebase 获取结果并显示在警报对话框中

java - 计算二进制字的奇偶校验

javascript - Mongoose populate() 返回对象数组而不是单个对象

java - 如何更改AWT标签字体

java - 在 Spring MVC 中搜索

java - Spring Webflux : Webclient : Get body on error

java - Maven - 引用子文件夹中的属性文件不起作用

node.js - mongodb findByIdAndUpdate 查询并得到 SyntaxError : Unexpected token ILLEGAL

mongodb - 可以在 MongoDB 查询中使用严格的 JSON $dates 吗?