cors 헤더 설정 추가
mongo 커넥션 설정 추가
This commit is contained in:
@@ -44,6 +44,12 @@ public class AuthenticationConfig {
|
||||
corsConfiguration.setAllowedMethods(List.of("GET", "POST", "PUT", "DELETE", "PATCH"));
|
||||
corsConfiguration.setAllowedHeaders(List.of("Authorization","Content-Type"));
|
||||
corsConfiguration.setAllowCredentials(true);
|
||||
corsConfiguration.setExposedHeaders(List.of(
|
||||
"Content-Disposition",
|
||||
"X-Filename",
|
||||
"X-File-Type",
|
||||
"Content-Length"
|
||||
));
|
||||
return corsConfiguration;
|
||||
}))
|
||||
.authorizeHttpRequests()
|
||||
|
||||
@@ -2,6 +2,8 @@ package com.caliverse.admin.global.configuration;
|
||||
|
||||
|
||||
import com.caliverse.admin.Indicators.indicatorrepository.MongoIndicatorRepository;
|
||||
import com.mongodb.ConnectionString;
|
||||
import com.mongodb.MongoClientSettings;
|
||||
import com.mongodb.client.MongoClient;
|
||||
import com.mongodb.client.MongoClients;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
@@ -15,6 +17,7 @@ import org.springframework.data.mongodb.repository.config.EnableMongoRepositorie
|
||||
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
|
||||
@Configuration
|
||||
@@ -56,7 +59,35 @@ public class MongoIndicatorConfig {
|
||||
}else{
|
||||
connection = String.format("mongodb+srv://%s%s/%s?retryWrites=true&w=majority&appName=backoffice-%s", auth, businessLogHost, db, activeProfile);
|
||||
}
|
||||
return MongoClients.create(connection);
|
||||
|
||||
MongoClientSettings settings = MongoClientSettings.builder()
|
||||
.applyConnectionString(new ConnectionString(connection))
|
||||
// 커넥션 풀 설정
|
||||
.applyToConnectionPoolSettings(builder -> {
|
||||
builder.maxSize(100) // 최대 연결 수
|
||||
.minSize(10) // 최소 연결 수
|
||||
.maxWaitTime(30, TimeUnit.SECONDS) // 연결 대기 시간
|
||||
.maxConnectionLifeTime(0, TimeUnit.MILLISECONDS) // 연결 최대 수명 (0 = 무제한)
|
||||
.maxConnectionIdleTime(0, TimeUnit.MILLISECONDS); // 연결 최대 유휴 시간 (0 = 무제한)
|
||||
})
|
||||
// 소켓 설정
|
||||
.applyToSocketSettings(builder -> {
|
||||
builder.connectTimeout(10, TimeUnit.SECONDS) // 연결 타임아웃
|
||||
.readTimeout(0, TimeUnit.MILLISECONDS); // 읽기 타임아웃 (0 = 무제한)
|
||||
})
|
||||
// 서버 선택 설정
|
||||
.applyToServerSettings(builder -> {
|
||||
builder.heartbeatFrequency(10, TimeUnit.SECONDS) // 하트비트 주기
|
||||
.minHeartbeatFrequency(500, TimeUnit.MILLISECONDS); // 최소 하트비트 주기
|
||||
})
|
||||
// 클러스터 설정
|
||||
.applyToClusterSettings(builder -> {
|
||||
builder.serverSelectionTimeout(30, TimeUnit.SECONDS) // 서버 선택 타임아웃
|
||||
.localThreshold(15, TimeUnit.MILLISECONDS); // 로컬 임계값
|
||||
})
|
||||
.build();
|
||||
|
||||
return MongoClients.create(settings);
|
||||
}
|
||||
|
||||
@Bean(name = "mongoIndicatorFactory")
|
||||
|
||||
Reference in New Issue
Block a user