较高概率 DNS lookup failed,如何解决/缓解

2017-05-05 14:07:41 +08:00
 oldcai

问题

通过应用内加入 newrelic 探针监控,发现公司现在应用的域名解析有时间段有高于20%的失败率

尝试

很早之前询问过 dnspod 客服,说是即使付费服务也不能解决这个问题,

客服也没告知具体原因,不太清楚是不是和运营商劫持有关。

请问如何解决

  1. 应用内自己设定 DNS 服务器

    Android/iOS 有没有不需要用户设定,就可以在应用内自定义 DNS 解析的方案? 包括但不限于 DNS over HTTPS

  2. 是否更换 DNS 服务商可以有所缓解?

    观察了其他一些服务,包括友盟统计、讯飞语音都有大量 DNS 解析失败。 微信 SDK 的流氓统计 pingma.qq.com 倒是很少出现 DNS 解析问题。

7075 次点击
所在节点    DNS
6 条回复
dfc643
2017-05-05 17:44:43 +08:00
1. 可以用 HTTP DNS 解决,DNSPod 也提供该服务,还可防止 ISP 劫持。
2. 如果是用户运营商所致换了也没有用,如果确信 DNS 服务商问题可尝试更换。

附录:
DNSPod HTTPDNS 参考地址: https://www.dnspod.cn/httpdns
safeoy
2017-05-05 21:19:57 +08:00
请求频次太高了吧,可以在应用内部做 DNS 缓存吧
oldcai
2017-05-05 21:23:31 +08:00
@safeoy
可是一般的 http client 的封装都没有参与 DNS 的吧?
而且操作系统中已经有 DNS 缓存了。
oldcai
2017-05-05 21:35:00 +08:00
@dfc643 可能自己封装 HTTP 协议,还能这么做,但是如果是 https 呢,也这么从 0 开始封装就。。
现在就是不知道如何插手到 DNS 这一环节中。
dfc643
2017-05-06 08:34:38 +08:00
@oldcai
HTTP 客户端直接请求解析 IP 然后附上 Host 即可,HTTPS 应该也是同理。
另外安卓有 HTTPDNS 库可以用,至于 iOS 不太清楚。

另外既然请求同一域名,系统又有缓存为何会高频率请求失败呢?

附件:
腾讯云 HttpDns 安卓 SDK: https://github.com/tencentyun/httpdns-android-sdk
safeoy
2017-05-07 08:32:57 +08:00
@oldcai
OS 是否有 DNS 缓存,需要看你的 OS 具体实现再确认下。
如果 http client 没有带 dns 缓存,可以自己自己改写。
dnspod 这种厂商对 local dns server 没有控制权,如果有频次限制的,只能自己加缓存了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/359329

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX