zoukankan      html  css  js  c++  java
  • ES访问TimeoutException分析

    ES RestClient 底层是封装了HttpClient组件来是现实通过http方式访问远程ES服务,这个可以通过查看RestClient的 org.elasticsearch.client.RestClient#performRequestAsync() 这个方法得到验证,这个方法里有直接调用HttpClient的 org.apache.http.nio.client.HttpAsyncClient#execute() 这个方法。

    由于Http协议底层是基于TCP协议来和对端网络建立连接,TCP协议建立网络连接需要经过三次握手,相对比较耗时,HttpClient为了提升性能,用连接池的方式对提交的连接请求进行管理,每次请求都从连接池里取连接,如果存在直接返回,如果不存在,放入队列等待。

    通过查看代码TimeoutException是因为从连接池取连接超时,默认超时时间为无限时间。org.apache.http.client.config.RequestConfig.Builder#Builder可以在这里看到默认值。

  • 相关阅读:
    Swagger2文档生成器
    SSM中spring配置文件
    REDTful风格设计接口
    xss练习
    使用burp绕过token爆破用户名密码
    简单的内网渗透实验
    XSS Challenges
    一次简单的渗透
    vim进阶学习
    kali的部分学习
  • 原文地址:https://www.cnblogs.com/caiyao/p/13798534.html
Copyright © 2011-2022 走看看