面向高并发场景的 HTTP 连接复用和 WebSocket 连接池配置指南。
复用连接可以减少资源消耗、提升吞吐量。具体策略取决于协议类型:
连接池默认启用,可根据需要调整以下参数。
配置连接池参数并调用模型服务:
Python SDK 通过自定义 Session 实现连接复用,支持异步 (aiohttp)和同步 (requests.Session)两种方式。
使用
使用
在多次调用间复用同一个 Session:
- HTTP API(文本生成、多模态、Embeddings):通过连接池配置(Java)或 Session 对象(Python)复用 TCP 连接。
- WebSocket API(TTS、实时语音):池化持有长连接的合成器对象。
前提条件
- 已获取 API Key 并配置为
DASHSCOPE_API_KEY环境变量。 - 已安装最新版 DashScope SDK:
- Python SDK:>= 1.25.2
- Java SDK:>= 2.16.6
HTTP 连接复用
DashScope 端点因模型类型而异:
- 文本模型(
qwen-plus、qwen3-max等):使用Generation类,路由到/services/aigc/text-generation/generation。 - 多模态模型(
qwen3.7-plus、qwen3-vl-plus等):使用MultiModalConversation类,路由到/services/aigc/multimodal-generation/generation。
Java SDK
连接池默认启用,可根据需要调整以下参数。
| 参数 | 说明 | 默认值 | 单位 | 备注 |
|---|---|---|---|---|
connectTimeout | 建立连接的超时时间 | 120 | 秒 | 低延迟场景可缩短此值以减少等待时间。 |
readTimeout | 读取数据的超时时间 | 300 | 秒 | |
writeTimeout | 写入数据的超时时间 | 60 | 秒 | |
connectionIdleTimeout | 空闲连接的超时时间 | 300 | 秒 | 适当延长可避免高并发时频繁重连。 |
connectionPoolSize | 连接池最大连接数 | 32 | 个 | 过少会导致阻塞,过多会增加服务器压力。 |
maximumAsyncRequests | 所有主机的最大并发请求数,需 ≤ connectionPoolSize | 32 | 个 | |
maximumAsyncRequestsPerHost | 单个主机的最大并发请求数,需 ≤ maximumAsyncRequests | 32 | 个 |
Python SDK
Python SDK 通过自定义 Session 实现连接复用,支持异步 (aiohttp)和同步 (requests.Session)两种方式。
异步 (aiohttp)
使用 aiohttp.ClientSession 和 aiohttp.TCPConnector 实现异步连接复用。
| 参数 | 说明 | 默认值 | 备注 |
|---|---|---|---|
limit | 总连接数上限 | 100 | 增大此值可提升并发能力。 |
limit_per_host | 单主机连接数上限 | 0(不限) | 防止对单个主机施加过大压力。 |
ssl | SSL 上下文配置 | None | 用于 HTTPS 连接的 SSL 证书验证。 |
同步 (requests.Session)
使用 requests.Session 实现同步连接复用。同一 Session 内的请求会复用 TCP 连接。