Проблема полягає в тому, як налаштувати read timeout та пул підключень у RestTemplate в Spring Boot версії 3.2.2. Згідно з документацією, можна створити RestTemplate за допомогою такого коду:
1 2 3 4 5 |
RestTemplate rt = builder.requestFactory(() -> new BufferingClientHttpRequestFactory( new HttpComponentsClientHttpRequestFactory(client) )) .setReadTimeout(Duration.ofMillis(5000)) .build(); |
У цьому прикладі ми надаємо власний об’єкт HTTP-клієнта з фабрикою підключень SSL та пулом підключень. Проте, метод setReadTimeout() викидає виняток про застарілість, як зазначено тут.
Згідно з цим, рішенням буде:
1 2 3 4 5 |
builder.requestFactory((settings) -> new BufferingClientHttpRequestFactory( ClientHttpRequestFactories.get(HttpComponentsClientHttpRequestFactory.class, settings))) .setConnectTimeout(Duration.ofSeconds(300)) .setReadTimeout(Duration.ofSeconds(300)) .build(); |
Проте виникає питання, як налаштувати фабрику підключень SSL, менеджер підключень тощо.