Webclient (пул соединений и SSL-рукопожатие) - PullRequest
5 голосов
/ 10 июля 2019

В Spring 5 мы используем webclient для вызова других конечных точек REST через SSL.Когда мы взяли логи на wireshark, мы увидели, что для каждого запроса происходит SSL-рукопожатие, и оно отнимает много времени.

Это запросы, которые у меня есть.

Запрос 1: Webclient выполняет внутренний пул соединения.Какое время истечения, после которого соединение будет недействительным.

Можем ли мы установить время, в течение которого соединение должно быть открыто для отправки нового запроса по уже определенному соединению, чтобы избежать рукопожатия SSL?

Есть ли параметр, позволяющий избежать рукопожатия SSL для каждого запроса?

Запрос 2: Мы создаем компонент Webclient и используем его во всем приложении.Есть ли какие-то настройки, которые нам нужно сделать, чтобы включить пул соединений и повторно использовать существующее соединение для отправки новых запросов.Также любые настройки, чтобы избежать рукопожатия SSL каждый раз.

    @Bean(name="productDefWebClient")
    public WebClient productDefWebClient() {
        ConnectionProvider elasticPool = ConnectionProvider.elastic("productDef-pool");
        HttpClient httpClient = HttpClient.create(elasticPool).wiretap(true);
        return WebClient.builder()
                .clientConnector(new ReactorClientHttpConnector(httpClient))
                .defaultHeader("Accept","application/json")
                .baseUrl("https://test-qa.test.com")
                .build();
    }

...