开发者社区> 问答> 正文

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

青塘sdk 2018-10-09 10:20:02 959

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

弹性计算 开发工具
分享到
取消 提交回答
全部回答(2)
  • hequan
    2019-07-17 23:08:13

    关于这个问题,python 版本 怎么设置超时时间

    0 1
  • 青塘sdk
    2019-07-17 23:08:13

    这个问题出现的原因是,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可以增加程序的稳定性。

    2 0
添加回答
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章
相似问题