什么是HTTPDNS?
客户端直接访问HTTPDNS接口,获取业务在域名配置管理系统上配置的访问延迟最优的IP。向获取到的IP发送业务协议请求,以HTTP请求为例,通过在Header中指定Host字段,向HTTPDNS返回的IP发送标准的HTTP请求即可。(简单来讲就是之前用域名请求,现在用向延迟最低的IP发送请求)
为什么接入HTTPDNS?
网络连接速度提高了50%以上!!!(用了都说好)
省略了耗时较多的DNS解析过程,节省了大量时间。同时也有效的避免了运营商域名劫持问题,网络接入成功率大幅提高。
公司项目使用的是DNSPOD提供的服务,当然大家也可以使用Tencent提供的HTTPDNS服务。
直接上干货
网络底层加入HTTPDNS服务的流程图如下:
这套架构设计使用了将近半年,一直保持稳定运行。大部分结构比较好理解,关于流程图需要补充几点:
- IP请求可行性验证开关
开发中发现,如果HTTP请求中间有代理服务器,那么不能通过指定Host的方式发IP请求,所以需要验证一下当前网络状态是否可以通过指定Host的方式发IP请求。
- 网络状态发生变化
此时要获取最新网络情况,并及时更新缓存的域名和IP配对信息。