开发者社区> 问答> 正文

循环创建多台 ECS SDK.ServerUnreachable Unable to connect server: timed out 超时

转发由钉钉群中提出的问题:调用阿里云SDK循环创建多台ECS时,遇到 SDK.ServerUnreachable Unable to connect server: timed out 超时。

展开
收起
青塘sdk 2018-10-09 10:20:02 3092 0
2 条回答
写回答
取消 提交回答
  • 关于这个问题,python 版本 怎么设置超时时间

    2019-07-17 23:08:13
    赞同 展开评论 打赏
  • 阿里云SDK研发人员

    这个问题出现的原因是,ECS创建实例(CreateInstance请求)的最长等待时间为90秒,但SDK对所有类型的请求均设置了一个固定的超时时间(Java SDK为15秒,Python SDK为10秒,.NET SDK为100秒, PHP SDK超时时间不详)。所以,当某次ECS CreateInstance请求的执行时间超过上述SDK超时时间设置后,timeout错误就发生了。

    这个问题是SDK的一个已知问题。我们计划在未来的版本中修正这个问题。现在,解决这个问题的办法是对SDK设置一个合适的超时时间,以Java SDK为例:

            DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "", "");
            HttpClientConfig httpClientConfig = HttpClientConfig.getDefault();
            httpClientConfig.setReadTimeoutMillis(100); // 设置网络读超时为100秒
            profile.setHttpClientConfig(httpClientConfig);
            DefaultAcsClient client = new DefaultAcsClient(profile);

    另外,ECS提供 RunInstances 接口用来批量创建实例,最多支持100个Instance,使用这个接口代替循环调用CreateInstance可以增加程序的稳定性。

    2019-07-17 23:08:13
    赞同 2 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS块储存产品全面解析 立即下载