request.adapters.HTTPAdapter中的pool_connections是什么意思?

发布于 2021-01-29 17:54:31

初始化请求时SessionHTTPAdapter将创建两个并将其安装到httphttps

这是如何HTTPAdapter定义的:

class requests.adapters.HTTPAdapter(pool_connections=10, pool_maxsize=10,
                                    max_retries=0, pool_block=False)

虽然我理解了pool_maxsize(池可以保存的会话数)的含义,但我不pool_connections知道它的含义或作用。Doc说:

Parameters: 
pool_connections – The number of urllib3 connection pools to cache.

但是“缓存”是什么意思?使用多个连接池有什么意义呢?

关注者
0
被浏览
157
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    请求使用urllib3来管理其连接和其他功能。

    重用连接是保持HTTP请求重复执行的重要因素。urllib3自述文件说明

    为什么要重用连接?

    性能。通常,当您进行urllib调用时,将为每个请求创建一个单独的套接字连接。通过重用现有的套接字(自HTTP
    1.1开始受支持),请求将在服务器端占用更少的资源,并在客户端提供更快的响应时间。[…]

    为了回答您的问题,“ pool_maxsize”是每个主机保留的连接数(这对于多线程应用程序很有用),而“
    pool_connections”是保留的主机池数。例如,如果您要连接到100个不同的主机,并且pool_connections=10,那么将仅重用最近的10个主机的连接。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看