问题现象
自2024年9月14日22点52分起,系统监测到部分省份联通网络线路在尝试访问移动解析服务主IP地址119.29.29.98失败。目前,平台团队正在积极处理中,暂时无法确定服务完全恢复时间。
对使用HTTPDNS SDK的用户,当前SDK内部使用了LocalDNS和备份IP进行兜底,解析成功率将不受影响。但SDK会周期性尝试探测服务可用性,导致每十分钟解析时延会间歇性增加一次,如果您需要对解析时延进行优化,可参考本文档。
对直接调用API的用户,建议根据实际的解析需求情况,可以将服务IP地址切换至备份线路IP地址119.28.28.98,或使用LocalDNS进行解析域名。
若您在切换备份线路IP有任何问题,请随时联系腾讯云处理,或提交工单。
原因
使用SDK未设置解析超时时间的情况下,超时时间默认是2000ms。当HTTPDNS请求不可用时,会等待解析超时时间结束才会返回解析结果(此结果为LocalDNS解析结果)。10分钟后会恢复原解析请求逻辑,导致每10分钟解析时延会间歇性增加。
解决方案
可以通过调整HTTPDNS SDK的解析超时时间,来优化解析时延。
iOS SDK接入方式
通过timeout字段来调整超时时间,示例如下:
代码语言:javascript复制 DnsConfig *config = new DnsConfig();
config->dnsId = dns授权id;
config->dnsKey = @"加密密钥";
config->encryptType = HttpDnsEncryptTypeDES;
config->debug = YES;
config->timeout = 2000; //超时时间,单位ms,默认值2000ms
[[MSDKDns sharedInstance] initConfig: config];
Android SDK接入方式
通过timeoutMills字段来调整超时时间,示例如下:
代码语言:javascript复制DnsConfig dnsConfigBuilder = DnsConfig.Builder()
.dnsId("dns授权id")
.dnsKey("加密密钥")
.desHttp()
.timeoutMills(2000) //超时时间,单位ms,默认值2000ms
.build();
MSDKDnsResolver.getInstance().init(this, dnsConfigBuilder);
说明:超时时间也不宜设置过低,建议超时时间设置800ms。