超时配置

更新时间:

本节主要介绍原版 SDK 如何进行网络超时配置。

重要

每个接口 API 都有独立的 Request,命名方式为 ${API}${Request},例如 DescribeInstancesRequest。

超时时间概念:

  • Connect Time:连接超时,是指 SDK 端到服务端的 TCP 连接建立时间;

  • Read Time:读超时,是指连接建立之后,SDK 发送请求(request)到接受到响应完成(response end)的时间;

原版 SDK 的超时机制为 Request 设置 -> Client 设置 -> 默认,优先级依次降低;默认连接超时为5秒,读超时为10秒:

IClientProfile profile = DefaultProfile.GetProfile(
    // 地域ID
    "<your-region-id>",
    // 从环境变量获取RAM账号的AccessKey ID
    Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
    // 从环境变量获取RAM账号的AccessKey ID
    Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
DefaultAcsClient client = new DefaultAcsClient(profile);

// Client 级别的超时设置,对当前所有 request 有效
DefaultAcsClient client = new DefaultAcsClient();
client.SetConnectTimeoutInMilliSeconds(1024);
client.SetReadTimeoutInMilliSeconds(2048);

// Request 级别的超时设置 以 ECS 的 DescribeInstancesRequest 为例,仅对当前 request请求有效
DescribeInstancesRequest request = new DescribeInstancesRequest();
request.SetConnectTimeoutInMilliSeconds(1024);
request.SetReadTimeoutInMilliSeconds(2048);