App如何实现就近接入?如何改善调度不准问题?

简介: 购买阿里云ECS服务器实例规格型号、功能、型号级别介绍及选择


一、常规DNS调度策略原理


以CDN系统为例(其他业务系统大多采用类似的策略),来说明一下多地域部署服务如何实现用户访问请求调度的。



Step 1:客户端(假设IP地址为IP1)向Local DNS(假设IP地址为IP2)发出域名解析请求(假设请求的域名为www.taobao.com )

Step 2:Local DNS代理客户端向权威服务器发起域名解析请求

Step 3:权威服务器根据域名( www.taobao.com )和IP2(对应的地域和ISP)进行调度并返回对应的解析结果。

Step 4: 客户端根据调度返回的IP发起业务访问请求。

二、调度精确性问题


2.1 问题描述


从上面的调度过程可以看出,业务系统会根据客户端的local dns IP来判断客户所处地域和运营商,并根据该地域和运营商来调度到就近的服务节点。



可以看出,当客户的Local DNS与客户的地域和运营商不匹配时,此时按照Local DNS来调度就会出现调度不精确的问题。



下面看几个来自客户的反馈(探测结果来自AliCDN昆仑探测工具):


596f0c463d1f6e2c3f3b06e421683442d7441636 6a63fbf7d20dd0447f21a905a126aa1eaaabad6d



探测的客户端IP和Local DNS IP以及对应的地域,运营商如下所示:

客户端IP

220.249.84.**

220.249.84.**

客户端归属 武汉联通 武汉联通
Local DNS IP

183.61.13.**

222.73.134.**

Local DNS 归属 珠海电信 上海电信




很容易看出,Local DNS地域和运营商与客户端都不匹配,此时按照Local DNS IP调度会对用户体验造成非常大的影响(国内跨运营商的访问延迟和带宽都存在非常大的问题,相信大家有深刻体验)。



2.2 问题影响面


根据我们的经验,影响的客户端占比在3%-7%之间。

2.3 原因


无线场景下主要由于以下两个方面因素导致:

(1)国内三大运营商Local DNS布点不足且不均匀,大量流量集中在2000个以内的Local DNS上,大的Local DNS对应的流量超过5Gb

(2)很多手机(尤其是山寨机)Local DNS配置不准确



如果扩展到全网(含有线访问请求),还需要考虑一个因素:

(3)公共DNS(如google 8.8.8.8,阿里的223.5.5.5,223.6.6.6)导致调度系统无法识别Local DNS的具体位置。

三、解决办法


业界当前常见的解决思路都是通过获取客户端的IP来精确定位客户端地域和运营商,实现上,有三种方式:

(1)HTTPDNS

客户端通过HTTP请求向httpdns服务器发出域名解析请求,此时httpdns服务器可以拿到客户端的精确IP,并基于客户端IP进行调度。

(2)edns client subnet

通过dns包中加入客户端IP信息,使得DNS调度系统可以拿到客户端IP并进行调度。

(3)http 302跳转

当调度系统给出的调度结果不准确时,业务服务器仍然可以根据客户端IP来判断调度是否合理,并且在必要时通过302跳转来实现重定向进而实现精确调度。



三种方式的优缺点对比如下:


客户端修改 Local DNS修改 权威DNS修改 系统开销 使用范围
HTTPDNS 有 无
低 最广
edns client subnet 无 需支持edns client subnet 需支持edns client subnet
低 中等
http 302 有(需支持302跳转) 无
高 最差




HTTPDNS综合来看是最优的解决方案,当前阿里云已经推出了 HTTPDNS商业化产品。

目录
相关文章
|
9月前
|
存储 弹性计算 人工智能
2026年阿里云服务器专属活动,爆款直降活动内容与云服务器活动价格参考
阿里云推出的弹性计算云服务器爆款直降活动,是云服务器ECS产品专属活动,2026年,这个活动中既有轻量应用服务器38元抢购,也有年度爆款服务器经济型e实例2核2G3M带宽 40G ESSD Entry云盘特惠价99元1年,还有通用算力型u2a实例指定配置2.5折,更强劲、更安全、更划算的第9代计算型c9i、通用型g9i、内存型r9i云服务器年付6.4折起等活动内容。本位为大家介绍爆款直降的最新活动内容,以及活动内云服务器的活动价格,以供参考和选择。
619 3
|
4月前
|
存储 人工智能 安全
从openclaw到国产龙虾,AI智能体工具技术架构全景分析
国产AI智能体工具在2024-2026年间形AI智能体工具技术架构全景分析:混合架构与一体化方案的演进路径 成了多样化的技术实现路径。本文从架构设计、部署模式、生态策略等维度,对主流产品进行系统性技术分析,为开发者与企业提供客观的技术选型参考。
556 0
|
存储 人工智能 JavaScript
Harmony OS开发-ArkTS语言速成二
本文介绍了ArkTS基础语法,包括三种基本数据类型(string、number、boolean)和变量的使用。重点讲解了let、const和var的区别,涵盖作用域、变量提升、重新赋值及初始化等方面。期待与你共同进步!
890 47
Harmony OS开发-ArkTS语言速成二
|
存储 搜索推荐 IDE
【JavaSE成神之路】一文洞悉Java语言的基本语法
哈喽,我是兔哥,今天就让我们继续这个JavaSE成神之路! 这一节,咱们要学习的内容是Java语言的基本语法,包括变量、常量、数据类型、运算符、流程控制语句、数组、字符串。 这是我们学好Java的基石,万丈高楼平地起的前提就是打好地基。 下面就让我们来一一参悟这些概念吧。
311 0
【JavaSE成神之路】一文洞悉Java语言的基本语法
|
人工智能 JSON 自然语言处理
微信小程序页面跳转如何传递对象参数
微信小程序页面跳转如何传递对象参数
891 0
|
弹性计算
云效流水线Flow体验ECS-5
云效流水线Flow体验ECS-5
282 0
云效流水线Flow体验ECS-5
|
存储 安全 Java
javaSE从入门到精通的二十万字总结(二)
目录前言5. 集合5.1 集合两大类5.2 Collection 前言 在看这篇文章之前先预习ava基础 可查看我之前写的文章java零基础从入门到精通(全) 以及javaSE从入门到精通的十万字总结(一) 5. 集合 集合实际上就是一个容器。可以来容纳其它类型的数据 集合不能直接存储基本数据类型,另外集合也不能直接存储java对象,集合当中存储的都是java对象的内存地址。(或者说集合中存储的是引用。)list.add(100); //自动装箱Integer 不同的集合等同于使用了不同的数据结构 new
324 0
javaSE从入门到精通的二十万字总结(二)
|
Python
Python 文件处理 open()函数
"r" - 读取 - 默认值。打开文件进行读取,如果文件不存在则报错。 "a" - 追加 - 打开供追加的文件,如果不存在则创建该文件。 "w" - 写入 - 打开文件进行写入,如果文件不存在则创建该文件。 "x" - 创建 - 创建指定的文件,如果文件存在则返回错误。
Python 文件处理 open()函数
搭建直播平台需要什么资质,建议收藏!
今年年初,疫情蔓延到全球,人们的日常生活受到诸多限制,大门不出二门不迈,过去的生活习惯被打破,大家在家里被孤立的时候只能靠互联网了解信息。此时,直播系统迅速崛起,吸引了越来越多的用户关注,各大电商平台也在改进。直播行业属于互联网文化产品,监管及资质范围比较多,那么搭建直播平台时,需要对哪些资质进行审查,以及开具哪些资质证明呢?
搭建直播平台需要什么资质,建议收藏!
|
人工智能 自然语言处理 大数据
GPT-4充当评测老师,效果惊艳,港中文(深圳)开源凤凰、Chimera等大模型
GPT-4充当评测老师,效果惊艳,港中文(深圳)开源凤凰、Chimera等大模型
570 0

热门文章

最新文章