Solr 9.x新TCP会话首个HTTP请求经代理延迟过高排查求助
Solr 9.x 代理下首请求延迟排查方向
针对升级Solr 9.x后,经代理的新TCP会话首请求耗时过长的问题,可从以下方向排查:
TCP/TLS握手阶段差异排查
使用tcpdump或wireshark抓取直接请求与代理请求的完整网络包,对比两者的TCP握手、TLS协商流程。重点关注:- Solr 9.x默认启用的TLS版本/加密套件是否与代理存在兼容性问题,导致首次协商出现重试或 fallback
- 代理是否对新连接有额外的TLS校验(如证书验证、OCSP查询),而直接请求无此环节
Jetty容器初始化逻辑验证
尽管Solr 9.0/9.1未升级到Jetty 10,但对比旧版本Jetty(Solr 6.x/8.x用Jetty 9)的连接处理逻辑:- 修改Solr的
jetty.xml配置,临时禁用非必要的连接定制器(如SecureRequestCustomizer的OCSP stapling) - 检查Jetty的线程池配置(
jetty-threads.xml),确认核心线程数是否足够,避免首次请求时线程创建开销
- 修改Solr的
代理请求头与转发逻辑测试
对比直接请求和代理请求的HTTP头,模拟代理的请求头用curl直接访问Solr:- 重点排查
Expect: 100-continue、Host等特殊头,确认Solr 9.x对这些头的处理逻辑是否与旧版本不同 - 检查代理是否开启了请求缓冲、压缩等功能,这些操作可能在首次请求时产生额外延迟
- 重点排查
Solr内部连接/线程池配置检查
对比Solr 6.x/8.x与9.x的solrconfig.xml:- 查看
requestDispatcher、httpCaching模块的配置变化,确认是否首次请求需要初始化连接池或缓存组件 - 检查Solr的请求处理线程池配置,是否存在首次请求时的初始化开销
- 查看
系统与网络层面规则排查
- 检查代理与Solr服务器之间的防火墙/IPS规则,是否对新TCP连接有额外的校验或速率限制
- 验证DNS解析延迟:确认代理是否需要重新解析Solr域名,而直接请求使用本地缓存或IP访问
内容的提问来源于stack exchange,提问作者BLitzba
相关产品推荐
相关产品推荐

