⎿ Unable to connect to API (ConnectionRefused) Retrying in 4s · attempt 4/10
错误信息
⎿ Unable to connect to API (ConnectionRefused)
Retrying in 4s · attempt 4/10
AI 解决方案
##错误分析报告
1 错误翻译
原文:Unable to connect to API (ConnectionRefused)
译文:无法连接到 API(连接被拒绝)
2 原因分析
根本原因: 客户端尝试连接 API 服务器时,目标服务器主动拒绝了连接请求。
常见原因:
| 可能原因 | 说明 |
|---|---|
| 服务未启动 | 目标服务进程未运行或已崩溃 |
| 端口配置错误 | 目标端口与服务监听端口不一致 |
| 火墙/网络限制 | 安全组或防火墙阻止了连接 |
| 地址错误 | API 主机地址(IP/域名)配置有误 |
| ⚡ 服务过载 | 服务器资源耗尽,拒绝新连接 |
⏱️ 当前状态:第 4 次重试(共 10 次),间隔 4 秒
3决方案
排查步骤:
# 1. 检查目标服务是否运行
ps aux | grep api
# 或
systemctl status your-api-service
# 2. 检查端口是否在监听
netstat -tlnp | grep <端口号>
# 或
ss -tlnp | grep <端口号>
# 3. 测试端口连通性
telnet <API地址> <端口>
# 或
curl -v http://<API地址>:<端口>/health
# 4. 检查防火墙规则
iptables -L -n
# 或
ufw status
代码层面修复示例:
import requests
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry
session = requests.Session()
retries = Retry(
total=5,
backoff_factor=1,
status_forcelist=[500, 502, 503, 504]
)
session.mount('http://', HTTPAdapter(max_retries=retries))
try:
response = session.get('http://your-api:port/endpoint', timeout=10)
except requests.exceptions.ConnectionError:
print("API 服务不可用,请检查服务状态")
4. 预防措施
- ✅ 服务健康检查:部署健康检查端点(如
/health),配合监控系统及时发现故障 - ✅ 完善错误处理:在客户端实现优雅的降级策略,而非仅依赖重 需要帮助? 请提供:
- API 服务的部署环境(本地/云服务器/容器)
- API 的连接地址和端口配置
- 服务端日志(如有)