淘宝技术分享:手淘亿级移动端接入层网关的技术演进之路

本文由手机淘宝技术团队原创分享,吴志华(天施)、洪海(孤星)、陈虓将(仲升)等专家参与了本文创作,首次发表于公众号“淘系技术”,收录整理时有修订和改动 。
1、引言移动端网络的优化是超级App们永恒的话题,而对于无线电商来说这更为重要,因为网络请求体验跟用户的购买行为息息相关 。
手机淘宝从过去的HTTP API网关,到后来扛住双十一战场主要流量的自研高性能、全双工、安全的ACCS(阿里云通道服务),无论是基础架构的演进、网络调优、协议的优化、异地多活、网络调度上,都有不少宝贵的经验与大家分享,本文借此机会总结了整个技术演进过程 。
* 阅读对象:本文属于移动端网络优化的深水区总结性文章,适合有一定移动端网络应用经验的开发者阅读(尤其对移动弱网有一定了解的),初学者如果没有相关知识积累的话,可以简单了解无需深入 。如果你对移动弱网很有兴趣,可以进一步阅读本文末尾“附录”部分的推荐文章 。
本文已同步发布于“即时通讯技术圈”公众号 。
2、相关文章

《Netty干货分享:京东京麦的生产级TCP网关技术实践总结》
《知乎技术分享:知乎千万级并发的高性能长连接网关技术实践》
《手机淘宝消息推送系统的架构与实践(音频+PPT) [附件下载]》
3、技术背景回想移动电商在双十一业务开始兴起的时候,当时双十一当天移动成交243亿占整体571亿的42.6% 。
业务高速发展希望更多主动推送去触达用户,一些新的玩法和互动形式,需要连接买家与买家、买家与卖家、买家与达人,因为没有有效的通道能力,业务采取的是不停去轮询服务器,一来对服务器造成不必要的压力,二来对于用户手机的电量流量也是极大的浪费,关键在双十五这种大促的情况下,不必要的请求过大甚至会导致后端集群限流,从而影响到用户体验 。
信息传播形态的变化的背后是移动化带来新的技术特征导致的结果 。移动电商领域,手机淘宝一直是先行者 。移动电商从最初的复制WEB的业务形态到移动特性不断涌现,更多的互动形式的出现,向社交化、娱乐化不断迈进的今天,一个单纯的商品的陈列架形式已经不能满足业务的需求 。
业务上需要实时的触达用户,充分发挥移动的特性,将消费时间的碎片利用起来,事实也证明了用户的消费时间随着移动化的进程不断发生变化,逐步分布到全天的碎片时间中 。同时货架形态也在向社区化、娱乐化的方向发展,这些都对网络层连接用户有了更高的要求 。更多的媒体形态和展示方式,对网络层提出了更多元的要求 。
大家可以关注到手机淘宝内的消息盒子这些产品都是业务求变的体现,业务的变化倒逼技术的前进 。
4、移动网络环境的挑战性一直都存在移动网络的速度随便3g、4g、5G的普及,速度有很大提升,但网络环境的多样性和差异性使移动网络的环境更加复杂,在过去双十一前还常遇到一些移动网络劫持的事情 。网络劫持这块问题的排查效率很低,需要找到用户、复现现场,甚至找网工、运营商配合排查,一查就是几天过去 。
同时在我们的舆情反馈上总是看到用户在说“某个页面加载中、页面打不开、请求很慢、打开某个功能很慢”,面对这些问题过去我们是没有太好的办法,只能猫抓耗子一桩桩去排雷很被动 。很多网络的问题是偶现的,一旦错过现在就无从查起 。
诸如此类的问题,背后的原因很多:
1)运营商问题;
2)机房部署原因;
3)客户端SDK Bug;
4)弱网和网络抖动;
5)DNS劫持和数据篡改 。
在PC时代,我们访问网站的接入条件是相对恒定的,所以在开发时很少考虑网络对用户体验的影响 。但是移动APP则不然,尤其是在国内,基础的移动网络环境还不算太好,而且我们有很多用户的访问是发生在地铁、公交车这样的移动环境下,移动基站的频繁切换进一步增加了网络的不稳定 。从手机淘宝的数据可以看出,我们每天活跃用户中有不少来自于弱网环境 。如果端到云的连接不稳定、高延时,那么所有的用户体验都无从谈起 。
基础网络的效率就像一辆列车,时延是火车的速度(启动时间),而带宽就像火车的车厢装载量,整个传输的物理链路就像火车的铁轨 。目前现实条件下的移动网络条件非常复杂,我们的目标很简单,就是想让所有用户都能在手机淘宝获得流畅的体验 。


推荐阅读