带你读《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

相关文章
|
10天前
|
存储 消息中间件 运维
从单体到微服务:架构演进中的技术挑战与解决方案
在软件开发的过程中,系统架构的选择对项目的成功与否起到至关重要的作用。本文将深入探讨从单体架构向微服务架构演进过程中所遇到的技术挑战,并提供相应的解决方案。
33 0
|
6天前
|
Java 数据库连接 API
“论数据访问层设计技术及其应用”写作框架,系统架构设计师
在信息系统的开发与建设中,分层设计是一种常见的架构设计方法,区分层次的目的是为了实现“高内聚低耦合”的思想。分层设计能有效简化系统复杂性,使设计结构清晰,便于提高复用能力和产品维护能力。一种常见的层次划分模型是将信息系统分为表现层、业务逻辑层和数据访问层。信息系统一般以数据为中心,数据访问层的设计是系统设计中的重要内容。数据访问层需要针对需求,提供对数据源读写的访问接口;在保障性能的前提下,数据访问层应具有良好的封装性、可移植性,以及数据库无关性。
“论数据访问层设计技术及其应用”写作框架,系统架构设计师
|
9天前
|
存储 供应链 安全
区块链技术防止交易被篡改的能力主要依赖于其独特的架构和机制
**区块链技术通过分布式存储、去中心化网络、哈希链接、共识机制及加密算法确保交易防篡改。每个区块含前块哈希,篡改将破坏链式结构;共识机制如PoW、PoS保证交易验证;智能合约增强安全性。多层防护保障数据完整性和安全性,支撑其在多个行业中的应用。**
|
3天前
|
弹性计算 Oracle 关系型数据库
技术好文共享:谁说阿里云不能跑Oracle,让驻云架构师告诉你怎么办!
技术好文共享:谁说阿里云不能跑Oracle,让驻云架构师告诉你怎么办!
|
3天前
|
JSON JavaScript 前端开发
技术经验分享:ExtJS4MVC架构讲解
技术经验分享:ExtJS4MVC架构讲解
|
3天前
|
存储 消息中间件 负载均衡
技术心得记录:架构设计之数据分片
技术心得记录:架构设计之数据分片
|
3天前
|
存储 SQL 分布式计算
技术心得记录:深入学习HBase架构原理
技术心得记录:深入学习HBase架构原理
|
3天前
|
Java API Android开发
技术经验分享:Android源码笔记——Camera系统架构
技术经验分享:Android源码笔记——Camera系统架构
|
6天前
|
存储 搜索推荐 算法
智能返利系统:探索个性化推荐技术的架构之道
智能返利系统:探索个性化推荐技术的架构之道
|
11天前
|
运维 Kubernetes 监控
现代后端开发中的微服务架构与容器化技术
随着信息技术的迅猛发展,现代软件开发趋向于采用微服务架构与容器化技术。本文探讨了微服务架构的优势,以及容器化技术如何促进开发、部署和扩展的效率,进而提升应用程序的可靠性和可维护性。
23 0