优质博文: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服务。
识别方式: 先明确调用方必须为App,在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,非其他)。
