优质博文:IT-BLOG-CN
一、流量分析
【1】流量组成: 按协议划分,流量链路可分为HTTP
、SOTP
、QUIC
三类。
HTTP | SOTP | QUIC | |
---|---|---|---|
场景 | 所有HTTP请求,无固定场景 | 国内外APP等 | 海外APP端 |
链路选择 | DNS/CDN(当前特指Akamai) | APP端保底IP列表/动态IP下发 | APP端保底IP列表/动态IP下发 |
【2】请求链路: 公司用户遍布世界各地,用户 --- 接入层(SLB/Gateway等)--- 服务 三者很可能不在一个地区,设计合理的访问链路,对用户体验提升明显。
宏观链路如图:
链路可分成两个阶段看:
Region
前:用户请求选择合适的Region
访问。链路选择作用于该阶段。
Region
内:请求通过接入层进入Region
后。流量调度作用于该阶段。
二、链路分析
链路选择阶段(Region前) :目前链路选择主要遵循用户流量就近访问接入层的原则。链路选择是怎么实现的?
HTTP | SOTP | QUIC | |
---|---|---|---|
选择能力 | DNS + GTM(Global Traffic Manager)/CDN(Akamai) | App端无线网络框架自实现选路 | App端无线网络框架自实现选路 |
选择逻辑 | ● GTM 即全局流量管理, 按负载权重、地域或运营商属性来进行流量分配, 为用户提供最佳访问IP 。● CDN 也是GTM 解析的结果,单独列出是因为Akamai 也具有链路选择能力,如根据路径、用户地理位置等选择请求源站。域名开启CDN 加速后,一般海外用户的请求会被GTM 解析到CDN ● Tips :可通过webinfo 查询域名的解析链,或通过dig (用海外DNS)检测域名是否开启Akamai 加速 |
● App 需配置所有的入口IP ,获取IP 有两种(共存)方式:1、代码内置IP 列表(静态)2、MCD (前身叫MTP )平台动态下发● 网络框架会根据一定的策略(链路质量/App 当前网络属性/地理位置等)选择合适的链路IP 发送请求 |
● 同Sotp 协议● 目前只有海外App 在用 |
流量调度阶段(Region内链路) :该阶段是指请求进入Region
后,请求是否允许在当前Region
处理,否则转发至其他Region
,实现流量跨Region
的调度转发。
Region
内请求链路:一般有以下几种场景(可自行甄别自己服务的请求链路)
链路1:SLB(Http) → 后端服务
场景 :一般为非SOA
服务,如nodejs
、.net
服务等,也存在一些Mobile Service
。
识别方式 :paas/captain
查看是否有外网SLB
入口。
链路2:SLB(Http) → H5 Gateway → 后端服务
场景: 接入了H5 Gateway
的服务,一般都是SOA
服务,也存在部分非SOA
服务。
识别方式: 在Gateway Portal
上根据AppId
或SOA ServiceCode
查询服务是否接入H5 Gateway
(强调:Gateway
团队有多套GW
,这里是H5 Gateway
,非其他)。
链路3:TCP Gateway(SOTP) → 后端服务
场景: 使用SOTP
协议的Mobile Service
。Tips
:TCP Gateway
仅限App
端使用。
识别方式: 可在MTP
平台根据Sotp Servicecode
查询。
链路4:TCP Gateway(STOP) → H5 Gateway → 后端服务
场景: 接入了H5 Gateway
的服务,且调用方为App
。一般都是SOA
服务,也存在部分非SOA
服务。
识别方式: 先明确调用方必须为Ap
p,在Gateway Portal
上根据AppId
或SOA ServiceCode
查询服务是否接入H5 Gateway
(强调:Gateway
团队有多套GW
,这里是H5 Gateway
,非其他)。
链路5:QUIC → H5 Gateway → 后端服务
场景: 接入了H5 Gateway
的服务,且调用方为海外App
(截止目前只有海外App
使用了QUIC
)。一般都是SOA
服务,也存在部分非SOA
服务。
识别方式: 先明确调用方必须为海外App
,在Gateway Portal
上根据AppId
或SOA ServiceCode
查询服务是否接入H5 Gateway
(强调:Gateway
团队有多套GW
,这里是H5 Gateway
,非其他)。