带你读《2022技术人的百宝黑皮书》——移动域全链路可观测架构和关键技术(10)

简介: 带你读《2022技术人的百宝黑皮书》——移动域全链路可观测架构和关键技术(10)
+关注继续查看

带你读《2022技术人的百宝黑皮书》——移动域全链路可观测架构和关键技术(9)https://developer.aliyun.com/article/1340960?groupCode=taobaotech


请求精简提速-极简调用实践

以MTOP请求作为一个场景,链路主要涉及「MTOP到网络库」的交互,通过对全链路线程模型现状分析,从MTOP发起到网络层接收到会几点会导致请求慢:

 

image.png数据拷贝多:现有网络层机制,网络库存在hook拦截处理,基于NSURLConnection + "URL Loading System" 转发到网络库进行网络传输,涉及多次数据拷贝,中转拦截处理非常耗时。

image.png线程切换多:线程模型过于复杂,完成一次请求频繁切换线程。

image.png异步转同步:原有请求使用一个队列 NSOperationQueue  来处理任务,底层维护的这个队列把请求和响应绑在一起,使得发送之后要等待响应结果回来才会释放,"HTTP Operation" 占住完整的一个HTTP收发过程的全部IO,违背了网络请求的并行性,operation queue容易打满阻塞。

 

 

 

以上几点问题,在大批量请求、系统资源竞争激烈场景下下(冷启动,几十个请求一拥而上),更为明显。

 

image.png

 

(图21 线程模型优化前后-极简调用)

 

改造方案,通过MTOP直接调用网络库接口来获得较大性能体验提升

 

 

image.pngimage.png简化线程模型: 跳过系统URL Loading System hook机制,完成收发数据线程切换,减少线程切换。避免弱网阻塞:数据包Sending 与 Receiving 拆分处理,空口长RT不影响 I/O 并发容量;

image.png汰换废弃API:升级老旧NSURLConnection 到直接调用 网络库API。

 

 

数据效果:可以看到,在系统资源更为紧张环境下,如低端机上优化幅度更为明显。

image.png

(图22 极简调用AB优化幅度)

 

弱网策略优化-Android网络多通道实践

WIFI信号差、弱网环境下,有时候多次重试对成功率提升效果并不明显。系统提供了一种能力,允许设备在WIFI环境下将请求切换蜂窝网卡的能力。网络应用层可以利用该技术,减少请求的超时等一类错误,提升请求的成功率。

 

 

 

在Android 21之后,系统提供了新的获取网络对象的方式,即使设备当前具有通过以太网的数据连接,应用程序也可以使用此方法来获取连接的蜂窝网络。所以,当用户设备同时存在WIFI和蜂窝网络的情况下,可以在特定策略下将不同请求同时调度到以太网和蜂窝网两个网卡通道上,实现网络加速。

 

带你读《2022技术人的百宝黑皮书》——移动域全链路可观测架构和关键技术(11)https://developer.aliyun.com/article/1340958?groupCode=taobaotech

相关文章
|
4天前
|
消息中间件 运维 前端开发
(云HIS)云医院管理系统源码 SaaS模式 B/S架构 基于云计算技术
v(云HIS)云医院管理系统源码 SaaS模式 B/S架构 基于云计算技术
16 0
|
5天前
|
Kubernetes Cloud Native 云计算
Docker技术全景:推动云原生架构的关键力量
Docker技术全景:推动云原生架构的关键力量
44 0
|
5天前
|
Kubernetes Cloud Native 持续交付
探索云原生时代:技术驱动的业务架构革新
探索云原生时代:技术驱动的业务架构革新
38 0
|
5天前
|
存储 分布式计算 关系型数据库
云原生数据仓库AnalyticDB MySQL湖仓版架构升级,持续释放技术红利!
云原生数据仓库AnalyticDB MySQL湖仓版架降价23%!持续提供高性价比的产品服务
|
5天前
|
存储 分布式计算 关系型数据库
云原生数据仓库AnalyticDB MySQL湖仓版架构升级,持续释放技术红利!
云原生数据仓库AnalyticDB MySQL湖仓版架降价23%!持续提供高性价比的产品服务
|
5天前
|
运维 Java 微服务
阿里技术专家,紧跟潮流,解读spring微服务架构技术的演进
Spring Cloud是企业进行微服务架构开发的极好选择,为了能帮助大家更好的学习,今天小编给大家推荐一本spring cloud最好的学习书籍。
|
5天前
|
存储 分布式计算 关系型数据库
|
20天前
|
存储 人工智能 Cloud Native
云原生架构如何助力大数据和AI技术在软件开发中的深度整合
b. 更低的成本 云原生环境提供了成本效益高、按需付费的模型,开发者只需支付他们实际使用的资源。这降低了大数据处理和AI模型训练的成本,使创新更加经济。
|
22天前
|
NoSQL Shell Linux
跨cpu架构部署容器技术点:怎么将容器启动时的1号进程挂载到systemctl
--privileged=true:是Docker中的一个参数,用于授予容器的特权权限。当一个容器被设置为特权容器时,它将拥有与主机操作系统相同的权限,可以执行一些高级操作,如访问主机设备、加载内核模块等。
19 0
|
22天前
|
存储 Linux Docker
跨cpu架构部署容器技术点:怎样修改Linux 的内核版本
在使用Docker 进行跨平台部署之后,我们还可以尝试进行跨架构部署。 从X86 架构上移植到 aarch64 上。
40 0
热门文章
最新文章
热门文章
最新文章
推荐文章
更多