Соединение было закрыто и истекло время ожидания для пула vertx httpclient - PullRequest
0 голосов
/ 12 октября 2019

Когда я использую httpclient, я выбрасываю много Соединений было превышено время ожидания с Превышен период ожидания 1000 мс. или Превышено время ожидания 1000 мсек, поскольку Соединение было закрыто

Я хочу проверить, не приведут ли эти исключения к отправке содержимого запроса. Ниже представлена ​​моя конфигурация: я отправляю 3000 запросов https на более чем 1000 веб-сайтов в секунду, я не знаю, на каком этапе произошла эта ошибка. Я не обращаю внимания на сообщение, возвращаемое с http-сервера. Просто отправьте сообщение на сервер и узнайте, влияют ли эти ошибки на мою цель.

HttpClientOptions clientOptions = new HttpClientOptions();
clientOptions
        .setMaxRedirects(2)
        .setConnectTimeout(1000) // default millions
        .setKeepAlive(true)
        .setKeepAliveTimeout(5) // default seconds
        .setMaxPoolSize(20) // per route connection size
        .setMaxWaitQueueSize(10240)
        .setIdleTimeout(5) // default seconds 
        .setPoolCleanerPeriod(1000) // clean alive in pool
        .setSsl(true)
        .setVerifyHost(false)                //cert with host but url is ip
        .removeEnabledSecureTransportProtocol("TLSv1")  // default is "TLSv1", "TLSv1.1", "TLSv1.2"  remove other support
        .removeEnabledSecureTransportProtocol("TLSv1.1")
        .setTrustAll(false)
        .setTrustOptions(
                new JksOptions().setPath(config.getKeyStorePath()).setPassword(config.getKeyStorePass()))
        .setOpenSslEngineOptions(new OpenSSLEngineOptions().setSessionCacheEnabled(config.isSessionCache()))
        .setReusePort(true)
        .setTcpFastOpen(config.isTcpFastOpen()) // linux native  options    
        .setTcpQuickAck(config.isTcpQuickAck()) 
        .setTcpNoDelay(config.isTcoNoDelay()) 


 //send requst set   timeout(1000)  like this 
HttpClientRequest req =
        httpClient
                .postAbs(
                        callbackUrl,
                        result -> {

                        })
                .setTimeout(1000) 
                .setFollowRedirects(true)
                .exceptionHandler(e->{}).end(buf);
...