接入指南
时间:2020-12-07一、HttpDNS 简介
1.HttpDNS 原理
常规域名解析是通过 DNS 协议进行解析的,其最终结果就是获取域名对应的真实服务器地址,无法绕开 DNS 拦截和故障问题。而 HttpDNS 则是以 HTTP 的方式代替传统 DNS 协议传递解析结果,能够有效避开 DNS 层面的拦截和故障。客户端通过接口向蔚可云提供的HttpDNS 集群发起“DNS 查询”请求, HttpDNS 集群根据请求携带的域名和 IP 信息,查询 CDN 内部调度策略,通过响应请求的方式,返回给客户端最优节点 IP。客户端得到最优节点 IP,通过在 header 中指定 host 字段,进行正常的业务访问。
2.访拓扑图流程
访问流程:客户端已根据 “2.接入指南” 完成客户端改造,具体客户端与 HTTPDNS 系统的业务流程如下(1)客户端向HttpDNS中心集群发起查询请求,携带用户域名和终端 IP(可选)。
(2)服务集群查询客户域名的覆盖配置,将域名最佳访问节点 IP 以 HTTP 响应的方式传递给客户端。
(3)客户端,收到响应结果,向节点发起请求。
(4)若客户端向HttpDNS集群请求失败,则启用备选,走正常 DNS 解析过程,向LocalDNS 发起请求。
(5)LocalDNS 进行递归查询。
(6)最终返回 DNS 结果
(7)客户端拿到最优 IP 后,建立连接,发起正常访问操作
二、接入指南
客户端逻辑流程图缓存说明
缓存策略
移动互联网用户的网络环境比较复杂,为了尽可能地减少由于域名解析导致的延迟,建议在本地进行缓存。 缓存规则如下:
① 缓存时间:
缓存时间建议采用查询得到域名 TTL。在客户端向HttpDNS集群发起域名解析请求时,得到请求响应的实体中会包含域名对应的 TTL 值。
查询本地缓存
本地是否缓存
② 缓存更新:
缓存更新应在以下两种情形下进行:
1)用户网络状态发生变化时
移动互联网的用户的网络状态由 3G/4G 切 Wi-Fi,Wi-Fi 切 3G/4G 的情况下,其接入点的网络归属可能发生变化。所以用户的网络状态发生变化时,需要重新向HttpDNS发起域名解析请求,以获得用户当前网络归属下的最优指向 IP。
2)缓存过期时
当域名解析的结果缓存时间到期时,客户端应该向HttpDNS重新发起域名解析请求以获取最新的域名对应的 IP。
③ 缓存时间更新优化:
为了减少用户在缓存过期后重新进行域名解析时的等待时间,建议在 TTL 快过期时(例如达过期时间 75%时)就开始进行域名解析。例如本地缓存的 TTL 为 600s,那么在第600*0.75=450s 时刻,客户端就应该进行域名解析。
④ 配合缓存的其他建议:
1)可在一次 http 请求中同时查询多个域名结果,批量得到结果,减少域名解析的次数,提升了解析效率
2)建议在业务允许的情况下,尽量减少域名的数量。如需区分不同的资源,建议通过 url来进行区分。
本页目录