Python 对“请求”使用keepalive http连接的正确方法是什么?

Python 对“请求”使用keepalive http连接的正确方法是什么?,python,Python,我正在使用python3和请求库进行rest通信。为了提高性能,我使用session对象来重用连接。我创建了一个会话实例,并使用它为每个用户的请求发送rest GET请求 但是,当请求速率达到每秒100个请求时,我开始出现“连接中止”错误。追踪是: Traceback (most recent call last): File "/usr/lib/python3.7/site-packages/urllib3/connectionpool.py", line 672, in urlopen

我正在使用python3和请求库进行rest通信。为了提高性能,我使用session对象来重用连接。我创建了一个会话实例,并使用它为每个用户的请求发送rest GET请求

但是,当请求速率达到每秒100个请求时,我开始出现“连接中止”错误。追踪是:

Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/urllib3/connectionpool.py", line 672, in urlopen
    chunked=chunked,
  File "/usr/lib/python3.7/site-packages/urllib3/connectionpool.py", line 421, in _make_request
    six.raise_from(e, None)
  File "<string>", line 3, in raise_from
  File "/usr/lib/python3.7/site-packages/urllib3/connectionpool.py", line 416, in _make_request
    httplib_response = conn.getresponse()
  File "/usr/lib/python3.7/http/client.py", line 1344, in getresponse
    response.begin()
  File "/usr/lib/python3.7/http/client.py", line 306, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.7/http/client.py", line 267, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.7/socket.py", line 589, in readinto
    return self._sock.recv_into(b)
ConnectionResetError: [Errno 104] Connection reset by peer
服务器是一个带有uwsgi的python Flask应用程序。我使用以下命令启用了保持活动连接:

uwsgi \
  --uid uwsgi \
  --master \
  --plugins http,python3,stats_pusher_statsd \
  --http :8880 \
  --buffer-size 32768 \
  --enable-threads \
  --processes 1 \
  --so-keepalive \
  --wsgi-file uwsgi.py

我是否需要在服务器端进行任何更改以使其正常工作?

如果服务器不喜欢机器人程序/脚本并阻止您的请求,该怎么办?如果我不使用session object,则可以正常工作。您是否尝试使用来自
request
session
对象?@Mox不是他们当前正在做的事情吗?如果服务器不是您的拥有一个,他们想中止你的连接是正常的,因为你建立了太多的连接。根据目前的结构,除了减速之外,实际上没什么可做的。
uwsgi \
  --uid uwsgi \
  --master \
  --plugins http,python3,stats_pusher_statsd \
  --http :8880 \
  --buffer-size 32768 \
  --enable-threads \
  --processes 1 \
  --so-keepalive \
  --wsgi-file uwsgi.py