실수로 몽고DB를 띄워놓지 않고, 서버를 틀고 API를 요청했더니, 약 30초간 응답을 기다리는 일이 발생했다.
그래서 디버깅을 해보니, MongoDbTimeout 예외가 발생했는데, 나는 이 30초라는 시간이 마음에 들지 않았다.
그래서 설정법을 찾아보았고, 최신 설정법을 공유한다.
@Configuration
public class MongoDBConfig {
//...
@Bean
public MongoClientSettings mongoClientSettings() {
final MongoClientSettings clientSettings = MongoClientSettings.builder()
.retryWrites(true)
.applyToConnectionPoolSettings((ConnectionPoolSettings.Builder builder) -> {
builder.maxSize(300) //connections count
.minSize(100)
.maxConnectionLifeTime(0, TimeUnit.MILLISECONDS)
.maxConnectionIdleTime(0, TimeUnit.MILLISECONDS)
.maxWaitTime(1000, TimeUnit.MILLISECONDS);
})
.applyToSocketSettings(builder -> {
builder.connectTimeout(5000, TimeUnit.MILLISECONDS);
})
.applyToClusterSettings(builder -> {
builder.serverSelectionTimeout(8000, TimeUnit.MILLISECONDS);
})
.build();
return clientSettings;
}
}