12、与其他服务交互及数据传输优化

与其他服务交互及数据传输优化

1. 会话挂载与连接池管理

在与多个 HTTP 服务交互时, session.mount(host, adapter) 方法能让请求在每次调用任何 HTTP 服务时使用 HTTPTimeoutAdapter 。例如, host 设为 http:// 时可作为通用匹配。

# 示例:为特定主机挂载自定义适配器
adapter2 = HTTPTimeoutAdapter(max_retries=1, timeout=1.)
session.mount('http://myspecial.service', adapter2)

这样,一个请求会话对象就能与多个 HTTP 服务交互。

requests 库底层使用 urllib3 ,会为每个调用的主机创建一个连接池,并在代码调用该主机时复用连接。在单线程的 Flask 应用中,连接池作用不大,每个调用依次进行,每个远程主机只保持一个连接。但在多线程且有大量并发连接的 Flask 应用中,连接池能控制与其他服务的连接数量,避免无限打开同时连接导致灾难。

HTTPTimeoutAdapter 类可控制连接池的增长,其继承自 HTTPAdapter ,能通过构造函数传入以下选项:
| 参数 | 说明 |
| ---- | ---- |
| <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值