Запросы Python HTTPConnectionPool и Max повторные попытки превышены с url

в кластере Linux я получаю эту ошибку с запросами:

ConnectionError: HTTPConnectionPool (host= 'andes-1-47', port=8181): Макс повторные попытки превышены с url: / jammy / api / v1 (вызвано:")

Что означает эта ошибка означает? Это проблема с запросами или это на хосте, и каково решение?

кстати, программа успешно работает как на Windows, так и на Linux автономных машинах с localhost.

2 ответов


так Max retries exceeded with url: ... бит может быть очень запутанным. По всей вероятности (поскольку вы упомянули, что это работает с использованием localhost), это приложение, которое вы где-то развертываете. Это также объясняет, почему имя хоста andes-1-47 и не то, что большинство ожидало бы (например,example.com). Мое лучшее предположение, что вам нужно либо использовать IP-адрес для andes-1-47 (например, 192.168.0.255) или ваш кластер linux не знает, как разрешить andes-1-47 и вы должны добавить его в свой (т. е., добавление строки:192.168.0.255 andes-1-47).

если вы хотите узнать, может ли ваш кластер linux разрешить имя, вы всегда можете использовать этот скрипт:

import socket

socket.create_connection(('andes-1-47', 8181), timeout=2)

это будет тайм-аут в течение 2 секунд, если вы не можете разрешить имя хоста. (Вы можете удалить тайм-аут, но может потребоваться гораздо больше времени, чтобы определить, достижимо ли имя хоста таким образом.)


на urlopen вызова, попробуйте установить retries=False или retries=1 чтобы увидеть разницу. Значение по умолчанию:3, которое звучит вполне разумно.

http://urllib3.readthedocs.org/en/latest/pools.html#urllib3.connectionpool.HTTPConnectionPool.urlopen