diff --git a/src/main/java/com/snp/batch/global/config/MaritimeApiWebClientConfig.java b/src/main/java/com/snp/batch/global/config/MaritimeApiWebClientConfig.java index 2ce50e5..96abce1 100644 --- a/src/main/java/com/snp/batch/global/config/MaritimeApiWebClientConfig.java +++ b/src/main/java/com/snp/batch/global/config/MaritimeApiWebClientConfig.java @@ -84,12 +84,17 @@ public class MaritimeApiWebClientConfig { log.info("Base URL: {}", maritimeAisApiUrl); log.info("========================================"); + HttpClient httpClient = HttpClient.create() + .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 10_000) // 연결 타임아웃 10초 + .responseTimeout(Duration.ofSeconds(60)); // 응답 대기 60초 + return WebClient.builder() + .clientConnector(new ReactorClientHttpConnector(httpClient)) .baseUrl(maritimeAisApiUrl) .defaultHeaders(headers -> headers.setBasicAuth(maritimeApiUsername, maritimeApiPassword)) .codecs(configurer -> configurer .defaultCodecs() - .maxInMemorySize(50 * 1024 * 1024)) // 50MB 버퍼 (AIS GetTargets 응답 ~20MB+) + .maxInMemorySize(100 * 1024 * 1024)) // 100MB 버퍼 .build(); }