关于多代理传输会阻塞的报告,需要给出 libcurl 版本与 TLS 后端。它并不能证明每次 CONNECT 传输都需要一个操作系统线程。

等待应检查什么
单个端点的额度CURLMOPT_MAX_HOST_CONNECTIONS 会把代理计为 host,即使目标站点各不相同
整个 multi handle 的额度连接总数上限可能形成另一条队列
一次连接尝试之后代理的实际响应,或该版本特有的阻塞行为

把事件循环集成、上限与超时预算同所安装版本的接口做对比。提高并发可能只是把队列推进代理解,而没有解决根本原因。

在改动应用的并发架构之前,先判断问题出在客户端队列、响应缓慢,还是实现特有的阻塞。

相关文章