美联(蘑菇街)无线技术分享感想

简介: 美联(蘑菇街)无线技术分享感想

美联客户端无线网关实践

网关的第一个优化的问题:

由于https(需要5次握手)比http(需要3次握手)多了两次握手(建立ssl隧道),所以在弱网环境下,https建立失败的几率会比http请求多很多。怎么具有https的安全性,又具有http的快速性就是无线网管需要解决的问题。

解决方案:

应用启动建立https的ssl隧道,需要证书认证,并保存会话信息到内存中。当认证成功后,ssl隧道断开(它一般是长连接,由于网络原因或超过它的时间,也会断开),再发送https请求都携带会话信息,当网关收到这样的https请求并且核对会话信息正确,不再进行证书认证直接建立通道(采用和http相似的方式建立通道)。

简言之:应用运行期间,首次https请求需要证书认证,以后不需要证书认证。

网关优化的第二个问题:

当一个页面加载时需要发送多个请求才能完成。通常的解决方案有三个:

1. 客户端多次或依次发送多个https请求(会出现加载页面耗时较长,处理逻辑复杂—部分成功部分失败,app弹出小菊花不当问题)。包括使用RACSignal的merge方法来使多个请求都收到响应后才触发页面刷新。

2. 服务器把多个不相关接口合并成一个接口。

解决方案:

对每个https请求进行编号,抽象出聚合层。客户端发送的一个超级请求包括https请求编号列表,请求参数列表。聚合层解析这个请求,向服务端发起多次请求,当收到所有请求后再给客户端这个组合结果。

由于客户端和网关间时外部网络,网络存在延迟和不稳定。网关和后台服务间是再一个局域网内,网络很稳定,无网络延迟。这样能大幅度提高客户端请求的响应速度和客户端处理的复杂度,服务端也免去了设计各种不相关的请求合并接口。

简言之:聚合层。

pp下载地址:https://pan.baidu.com/s/1bpvOlSb

蘑菇街App启动性能优化实践

对应用启动时的数据加载和文件读写进行分类,区分为启动时必须同步加载的数据(这类数据一般要尽量少)和异步加载的数据(本地化数据读取,这样数据可能比较大。一般的数据都可以用这种方式。这种方式又叫懒加载)。尽快的让用户从点击app图标,到看到欢迎页面。

异步加载的数据数据,通过起线程来加载数据和读写文件。为了防止在读本地数据时,用户使用正读写的数据,可以通过单例变量进行标识和防范(相当于加锁和解锁。系统锁其实也需要时间来生效的,并非你上了锁,它无延迟的生效,但是单例变量就可以做到实时生效)。

既然是用起线程的方式加载大数据,就存在非后台运行的app(如:开启后台持续定位的app,在后台仍可以正常运行),用户在加载数据的时间突然按home键,苹果系统有可能永远挂起这个线程,让你无法再继续加载数据。

所以最后对懒加载的数据部分抽象出来一个类,能够识别数据加载过程中禁止读写,数据加载被永远阻塞重新加载,数据加载失败。

viewWillAppear函数并非在页面加载前的处理,而是页面出现时的时机时在刚显示还不能交互时调用该函数,并非页面显示显示之间调用该函数,viewDidAppear函数是页面出现时机是可以刚可以交互时的处理函数。你在这两个函数里设置一个断点调试时就可以发现它的不同。所以欢迎页最好放在viewWillAppear数据里。

简言之:起线程进行懒加载。

pp下载地址:https://pan.baidu.com/s/1boHmCwf

无线配置中心演进历程

对每个功能进行标号,通过正则表达式进行配置中心数据编号的命中处理。

服务器下发配置中心数据更新消息,客户端解析消息,根据解析的消息结果来决定是否向服务器下载数据(配置数据,hotfix数据等)

简言之:通过配置中心管理需要加载的应用模块。

ppt下载地址:https://pan.baidu.com/s/1o8iA9DK

不过分享会的内容要比ppt中的内容多的多,ppt只是概念性的东东。

我的csdn的上传资源空间满了,只能使用百度云盘了。

蘑菇街分享中心地址:

http://mday.mogu.io/?from=timeline&isappinstalled=0#t1.1(这个网址今天进入不进去,不知道什么原因。原来的是可以了。)


目录
相关文章
|
算法 程序员 信息无障碍
技术有温度,优酷亮相CSDN 1024程序员节,带来无障碍建设分享
作为国内领先的视频平台,优酷是率先进行站内无障碍改造的平台之一,受深圳市信息无障碍研究会邀请,阿里文娱移动技术负责人、阿里影业技术负责人嗷啸在CSDN1024程序员节「技术向善:视障的科技之光」论坛带来分享:《无障碍建设:统一组件+优雅交互》。
179 0
天猫精灵开发平台AliGenie - 打造孩子专属的暖心小伙伴
在天猫精灵陪伴孩子的过程中,除了监督学习、讲故事、听儿歌,我更希望它可以成为孩子倾诉的对象,当孩子遇到困难或者在学校被欺负,它可以化身为精灵,给予孩子更多的鼓励和说些更暖心话语,温暖一个个幼小的心灵。
519 0
天猫精灵开发平台AliGenie - 打造孩子专属的暖心小伙伴
|
Web App开发
喜讯来袭,推荐个神器!
喜讯来袭,推荐个神器!
134 0
喜讯来袭,推荐个神器!
|
云栖大会 开发者
云栖大会开始啦!参与话题发博文,机械键盘、无线充电器等你拿!快来分享你和云栖大会的故事吧!
云栖大会开始啦!参与话题发博文,机械键盘、无线充电器等你拿!快来分享你和云栖大会的故事吧!
云栖大会开始啦!参与话题发博文,机械键盘、无线充电器等你拿!快来分享你和云栖大会的故事吧!
|
算法 C语言
#答题送书# 技术之瞳——叩开阿里之门之在线笔试
分享技术面试或笔试中的那些经验或有趣的经历,并回答精选的10道阿里笔试题选取5名用户送出《技术之瞳:阿里巴巴技术笔试心得》一本
21867 0
|
开发框架 移动开发 前端开发
CodeHub#4 启动报名| 荷小鱼:K12 在线教育应用的开发实践
一次关于实现网络环境弱影响、版本升级无感知的技术探讨
780 0
CodeHub#4 启动报名| 荷小鱼:K12 在线教育应用的开发实践
|
人工智能 移动开发 边缘计算
|
前端开发 ice
淘系技术前端研习社|邀请你宅在家里看直播
新年第一课|你不容错过的前端好课!
805 0
淘系技术前端研习社|邀请你宅在家里看直播
|
人工智能 算法 开发工具
阿里工程师开发弹幕新玩法,网友不淡定了……
如果你在追剧时喜欢看弹幕、发弹幕,那你一定知道有些剧里弹幕甚至比剧情还要精彩,比如上过热搜的出自《东宫》的那一句“谈恋爱吗?灭你全族的那种”。正是由于这些神一般的网友频频曝出精句,让某些剧集精彩程度翻了几倍,甚至有大量网友来追剧是被弹幕吸引来的。今天,阿里文娱高级开发工程师 神灭介绍一种弹幕新玩法,让弹幕的可玩性更高。
491 0
阿里工程师开发弹幕新玩法,网友不淡定了……
|
Linux Python
成为1%的体验是什么?技术发烧友有话要说
阿里云第15期贡献者荣誉榜单已于2018.07.03日发布。
2141 0