elasticsearch java.net.SocketTimeoutException -Elastic搜索客户端中的socketTimeout不工作

lsmepo6l  于 12个月前  发布在  ElasticSearch
关注(0)|答案(1)|浏览(322)

我们有一个spring Boot 应用程序,它使用Elasticsearch Client连接到ELK,并通过传递时间窗口(从DateTime和To DateTime)来检索数据。如果窗口超过16小时,我们将面临以下生产错误。* 无法完成请求:java.net.SocketTimeoutException:http-outgoing-18 [ACTIVE] * 我们尝试通过设置如下客户端配置来增加套接字超时。

return ClientConfiguration.builder()
                .connectedTo(uris)
                .usingSsl(sslContext)
                .withBasicAuth(username, password)               
                .withConnectTimeout(Duration.ofMillis(5000))
                .withSocketTimeout(Duration.ofMillis(20000))
                .withDefaultHeaders(compatibilityHeaders)
                .build();

对于较低的环境测试,我们试图在较低的环境中复制该场景。我们将超时值设置为小于响应时间。通常我们的API响应需要大约300到400毫秒。我们将套接字超时设置为100 ms('. withSocketException(Duration.ofMillis(20000)'),这样我们就可以在较低的env中复制异常并对其进行测试。套接字超时可以在以后使用同一段代码增加。但是上面的代码并不起作用,即使将socketError的值设置为100之后,响应也会在300到400毫秒之间收到。但是我们期待socketworldException,因为我们已经将值设置为100。我们的测试方法是否正确?请帮助建议如何设置套接字超时的ElasticSearch客户端和解决这个问题。
谢谢你,谢谢

zf9nrax1

zf9nrax11#

如果套接字超时被正确配置为100 ms,它不会在300到400 ms时给出响应,而是给出SocketTimeoutException
对于配置100 ms的套接字超时,socketTimeout持续时间将为:

.withSocketTimeout(Duration.ofMillis(100))

相关问题