【问题标题】:Best way to create a proxy pool in php using guzzle or curl使用 guzzle 或 curl 在 php 中创建代理池的最佳方法
【发布时间】:2020-02-04 05:57:06
【问题描述】:

问题:在 php 中创建代理池的最佳方式是什么,我最初的想法是使用 CURL 或 Guzzle。

用例:我有 x 数量的代理,我通常会滚动连接,我试图思考最好的选择是什么,我可以创建一个包含所有预代理的池-connected,然后将我的请求传递给连接的代理池以完成请求。这种方法的问题是每次我断开连接并连接到下一个代理时,它都会增加一个短暂的延迟,而我的用例意味着延迟很关键,所以我试图通过已经拥有一个来避免断开连接并连接到下一个代理连接的代理池。

目标:通过将请求传递到代理池以由已建立的代理连接之一完成来实现最低延迟。

【问题讨论】:

    标签: php curl proxy connection-pooling guzzle


    【解决方案1】:

    通过将请求传递到代理池以由已建立的代理连接之一完成来实现最低延迟。

    在 PHP(使用 cURL)中,您无法直接控制连接池,cURL 在 lib 中维护它。但是你可以指定一些选项来设置它的大小。

    看看the docs about creating CurlMultiHandler。有您感兴趣的 CURLMOPT_MAX_TOTAL_CONNECTIONS 和 CURLMOPT_MAX_HOST_CONNECTIONS 选项。因此,如果您只通过预定义的代理服务器列表请求,这些设置将调节您与代理的连接池大小。

    还请查看CURLOPT_MAXCONNECTS 并检查您使用的是 HTTP 1.1(HTTP 1.0 不支持keepalive)

    【讨论】:

    • 感谢您花时间提供帮助,假设我有 1,000 个代理.. 是否可以打开每个代理的 curl 连接并长时间保持连接打开.. 然后我可以将我的请求传递给已经连接的 1000 个代理池,因此我应该能够避免打开连接的延迟。发出请求然后关闭连接,然后再转到下一个代理。相反,我将能够只需发出请求,然后移动到下一个代理,因为 1,000 已连接并存储在池/数组中......这可能吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-25
    • 1970-01-01
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多