HTTP-DNS设计方案
一、系统角色
1.1、业务-client
端侧业务系统,可由iOS、android、H5、小程序组成。
职责:
- 1、接入云控降级开关。
- 2、接入A/B系统,这个看承载能力,最好包含版本、白名单、业务线、用户等多维度自动分流。
- 3、接入HTTPDNS-SDK,初始化。
- 4、根据SDK异常回调,需要将异常情况上报公司统一平台,监控运行情况,及时调整。
1.2、业务-server
业务接口前台服务
必要的配套服务支撑
- 1、云控降级开关服务
- 2、A/B系统服务
- 3、各业务功能系统
1.3、HTTPDNS-SDK
httpdns接口能力组装层,起到能力组装、对接端侧业务系统能力。
1、初期接入阶段,我们采用的是热点域名配置方式,仅处理白名单的域名请求,主要考虑的是降低新风险的引入。
2、白名单需要有过期清楚或者强制下发清楚功能,当配置异常的时候能及时恢复。
3、注册打桩HTTP请求过程,AOP干涉请求过程,将域名请求“偷换”成IP。
4、请求头封装:httpheader中的host和“异常监控”header更改,这里单独说明下,“异常监控”header的背景是这样的,一般http异常监控平台都是监控host来确定请求域名的,当我们认为“偷换域名为IP”,监控系统错乱,得认为告诉他这一类IP请求是归结于特定域名下的。
1.3.1、逻辑
桥接业务和底层DigIP-SDK,包含必要的封装和数据处理能力。
1.3.2、数据
- 1、白名单域名、热点域名(缓存过程、过期更改过程、清楚过程)。
- 2、域名对应IP数据缓存(缓存过程、过期更改过程、清楚过程)。
- 3、DNS请求过程队列管理。
1.4、DigIP-SDK(传送门)
作用单纯,输入域名和localIP输出IP。
- 1、拼接UDP报文请求
- 2、发送请求
- 2、接受并解析DNS服务器的返回,数据梳理完成输出给上层HTTPDNS-SDK
1.5、HTTPDNS-Server
与HTTPDNS-SDK配到的服务。
- 1、热点域名白名单域名服务
二、时序图
为了适应大多数场景和脱敏要求做了调整。
111.png 222.png 333.png
网友评论