趣谈网络协议
刘超
前网易研究院云计算技术部首席架构师
130417 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 51 讲
趣谈网络协议
15
15
1.0x
00:00/00:00
登录|注册

第19讲 | HttpDNS:网络世界的地址簿也会指错路

除了HttpDNS,还有什么技术可以加快客户端访问速度?
如何获取HttpDNS服务器的地址或域名?
服务端根据策略选择最佳IP
客户端获取手机信息
同步更新和异步更新
客户端、缓存、数据源三层架构
递归查询耗时
解析结果更新慢
无法判断运营商
跨运营商访问慢
缓存导致负载均衡失败
缓存不及时
思考题
HttpDNS通过SDK和服务端实现智能调度
传统DNS存在多种问题
调度设计
缓存设计
请求HttpDNS服务器获取最近的地址
本地缓存DNS解析结果
SDK请求服务端获取IP列表
解析延迟问题
域名更新问题
出口NAT问题
域名转发问题
域名缓存问题
总结
HttpDNS工作模式
传统DNS问题
HttpDNS

该思维导图由 AI 生成,仅供参考

上一节我们知道了 DNS 的两项功能,第一是根据名称查到具体的地址,另外一个是可以针对多个地址做负载均衡,而且可以在多个地址中选择一个距离你近的地方访问。
然而有时候这个地址簿也经常给你指错路,明明距离你 500 米就有个吃饭的地方,非要把你推荐到 5 公里外。为什么会出现这样的情况呢?
还记得吗?当我们发出请求解析 DNS 的时候,首先,会先连接到运营商本地的 DNS 服务器,由这个服务器帮我们去整棵 DNS 树上进行解析,然后将解析的结果返回给客户端。但是本地的 DNS 服务器,作为一个本地导游,往往有自己的“小心思”。

传统 DNS 存在哪些问题?

1. 域名缓存问题

它可以在本地做一个缓存,也就是说,不是每一个请求,它都会去访问权威 DNS 服务器,而是访问过一次就把结果缓存到自己本地,当其他人来问的时候,直接就返回这个缓存数据。
这就相当于导游去过一个饭店,自己脑子记住了地址,当有一个游客问的时候,他就凭记忆回答了,不用再去查地址簿。这样经常存在的一个问题是,人家那个饭店明明都已经搬了,结果作为导游,他并没有刷新这个缓存,结果你辛辛苦苦到了这个地点,发现饭店已经变成了服装店,你是不是会非常失望?
另外,有的运营商会把一些静态页面,缓存到本运营商的服务器内,这样用户请求的时候,就不用跨运营商进行访问,这样既加快了速度,也减少了运营商之间流量计算的成本。在域名解析的时候,不会将用户导向真正的网站,而是指向这个缓存的服务器。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

HttpDNS是一种通过搭建基于HTTP协议的DNS服务器集群,分布在多个地点和多个运营商,解决了传统DNS存在的域名缓存、转发、出口NAT、域名更新和解析延迟等问题的新型解析方式。它通过客户端SDK和服务端,实现了缓存设计和智能调度,解决了解析速度和更新速度的平衡问题,以及全局负载均衡的问题。HttpDNS的工作模式是在客户端SDK里动态请求服务端,获取HttpDNS服务器的IP列表,缓存到本地,并在本地缓存DNS域名解析的结果。通过HTTP通信,能够准确知道客户端所在的运营商和地址,从而实现精准的全局负载均衡。HttpDNS的出现解决了传统DNS存在的问题,为用户提供了更快速、准确的域名解析服务。文章还介绍了HttpDNS的缓存设计和调度设计,以及与应用架构中常用的缓存设计模式的对比和联系。同时,提出了两个思考题,引发读者深入思考。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《趣谈网络协议》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(82)

  • 最新
  • 精选
  • quanbove
    HTTPNDS 其实就是,不走传统的 DNS 解析,而是自己搭建基于 HTTP 协议的 DNS 服务器集群,分布在多个地点和多个运营商。 发现一个笔误的地方,HTTPDNS,而不是HTTPNDS,我是又多无聊[捂脸]

    作者回复: 谢谢指正

    2018-09-26
    22
  • 公告-SRE运维实践
    这个文章看起来感觉httpdns能解决传统的dns问题,但是前提是有自己的客户端,这种要对业务进行全部改造。那么如果就是浏览器访问,有没有什么方案,在不使用cdn的情况下

    作者回复: httpdns需要自己的客户端

    2018-08-21
    2
    8
  • 蚂蚁内推+v
    HTTPDNS能支持HTTPS 不

    作者回复: 可以的

    2019-06-16
    4
  • 追风筝的人
    非计算机专业同学,老师能送我一份网络协议知识图谱吗?

    作者回复: 买了课程的,最后一节都有

    2019-06-05
    4
  • Marco
    那httpdns不需要考虑负载均衡么?

    作者回复: 考虑,httpdns里面也可以配置负载均衡策略的

    2019-03-19
    2
    3
  • 哈哈哈
    请问老师:文中的在不同运营商或地区部署httpdns服务,根据客户端位置返回最优应用地址,httpdns服务端部署方式是如何的?如何达到不同运营商或地区效果?httpdns适用场景只有哪些呢?谢谢

    作者回复: 一般是多个数据中心分布式部署,适用于手机客户端的情况

    2019-02-14
    2
    3
  • 克里斯
    权威DNS服务器的ip地址不会变吗?

    作者回复: 很少变

    2019-02-08
    3
  • 桃子妈妈
    老师好,很想了解HTTPDNS服务端仍然会使用递归的方式依次通过根域名、顶级域名、权威域名去递归查询吗?

    作者回复: 不会的,直接返回了

    2019-01-31
    3
    3
  • whats your name
    老师,有一个疑惑点:HTTPDNS的域名/ip地址簿是从哪里来的呢?

    作者回复: 管理员配置,反正httpdns服务器也是你自己搭建的,如果你用公有云,他也让你配置的

    2019-04-13
    2
  • supermouse
    想问一下老师,HTTPDNS服务器集群是谁来搭建的?

    作者回复: 你可以自己搭建,也可以去公有云买

    2019-04-11
    2
收起评论
显示
设置
留言
82
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部