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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 购买阿里云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商业化产品。

目录
相关文章
|
7天前
|
数据采集 网络协议 算法
移动端弱网优化专题(十四):携程APP移动网络优化实践(弱网识别篇)
本文从方案设计、代码开发到技术落地,详尽的分享了携程在移动端弱网识别方面的实践经验,如果你也有类似需求,这篇文章会是一个不错的实操指南。
20 1
|
30天前
|
机器学习/深度学习 编解码 算法
深入解析MaxFrame:关键技术组件及其对视频体验的影响
【10月更文挑战第12天】随着流媒体服务和高清视频内容的普及,用户对于视频质量的要求越来越高。为了满足这些需求,许多技术被开发出来以提升视频播放的质量。其中,MaxFrame是一种旨在通过一系列先进的图像处理算法来优化视频帧的技术。本文将深入探讨构成MaxFrame的核心组件,包括运动估计、超分辨率重建以及时间插值算法,并讨论这些技术如何协同工作以改善视频播放效果。
38 1
|
3月前
|
Web App开发 缓存 Shell
PWA离线优先策略:提升用户体验的关键步骤
Progressive Web Apps (PWA) 采用Service Worker与Cache API实现离线优先策略,确保无网时仍可访问网站内容。通过注册Service Worker、配置缓存策略及manifest文件,结合App Shell架构和WebSocket支持,创建出即便在离线或弱网环境中也能提供流畅体验的高度可用应用。测试和持续优化对于保证PWA性能至关重要。
61 6
|
6月前
|
小程序 前端开发 API
快递平台独立版小程序源码|带cps推广营销流量主+前端
快递平台独立版小程序源码|带cps推广营销流量主+前端
231 7
快递平台独立版小程序源码|带cps推广营销流量主+前端
游戏对接广告看视频系统开发详细规则/方案逻辑/步骤逻辑/规则玩法/源码程序
Advertising location and display method: According to the characteristics of the game interface and scene, choose the appropriate advertising location and display method to ensure that the advertisement naturally integrates into the game and does not affect the player's game experience.
|
6月前
|
移动开发 小程序 API
【7月开发者日回顾】小程序回跳APP链路、相机组件等多个新能力计划公布!
【7月开发者日回顾】小程序回跳APP链路、相机组件等多个新能力计划公布!
65 2
|
JSON 机器人 API
自动交易机器人做市策略APP量化交易模式开发
def __init__(self, api_url, api_key): self.api_url = api_url self.api_key = api_key def place_order(self, symbol, amount, price):
|
数据挖掘 API
(跨品种/跨市场)套利策略API对接开发源码规则解析
(跨品种/跨市场)套利策略API对接开发源码规则解析
|
存储 缓存 安全
App极限瘦身 | 动态下发so(1)
App极限瘦身 | 动态下发so
281 0
App极限瘦身 | 动态下发so(1)
|
移动开发 缓存 安全
App极限瘦身 | 动态下发so(2)
App极限瘦身 | 动态下发so
177 0