移动端接入关键技术解析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 移动端接入关键技术解析

背景

随着移动互联网成长成熟,移动端逐渐涌现出与WEB不一样的产品形态。

  • 互动

越来越多的互动形式的出现,各种产品向社交化、娱乐化不断迈进

  • 媒体化

从文字+图片为主的生态,逐渐向以视频为主的内容生态进化

  • 实时性

内容生产逐渐由推荐式替代陈列式的形态;内容促达充分利用移动特性,实时触达用户,抢占用户的碎片时间

以上变化也推动了移动端接入技术演化发展,不再局限于常见的“请求-响应”的通信模式。

如果把移动端接入服务分为两层:流量接入层和应用接入层,本篇文章更多侧重于应用接入层,对于流量接入层如何实现,已经在《高可用的接入层架构细节实现》覆盖。

通信方式细分

如果WEB时代接入层支持单工即可,客户端主动获取(PULL)数据;那么移动时代接入层需要支持双工,服务端也可以主动推送(PUSH)数据给客户端。如果客户端也像服务端一样可以24小时在线,那么只需要支持如此两种形式的通信方式即可,然而现实情况更为复杂。

  1. 频繁打开关闭,如何进行离线数据同步
  2. 数据同步面临 网络状况复杂、同步速度、客户端耗电量等要求
  3. 多终端离线数据同步,如何做到数据不遗漏、不重复

基于以上几点,可以降PUSH模式进行细分,拆解成两种模式:推送数据 + 数据同步(SYNC)。总结一下,在应用接入层需要支持以下三种形式的通信模式:

  • RPC 负责“客户端向服务端请求数据(请求 - 响应)”的通信模式;
  • SYNC 负责“客户端从服务端同步数据”的通信模式;
  • PUSH 负责“服务端向在线客户端 PUSH 数据”的通信模式。

关键技术

以下的部分重点讲述实现以上通信方式所需要的关键技术

SYNC 机制

本质上 SYNC 是基于 SyncKey 的一种同步协议。微信在聊天界面拉取所有的未读消息,很卡很耗费流量。SYNC 机制是同步差量数据,以达到了提高通信效率、节省流量的效果。

在消息投递时选择合适的 ID生成方案,为消息绑定递增的序号。推送消息时,不是把消息直接推送下去,而是发一个通知到客户端,客户端收到通知,根据用户上翻或者下翻的行为,带上一个最近收到消息的最大的序列号,按需、分页拉取消息。此机制保障了消息不重不漏,并且可以有效支持多终端数据同步。

客户端无需实时在线,对于用户不在线的情况,SYNC Server 会将差量数据保存在数据库中。当客户端下次连接到服务器时,再同步差量数据给用户。

长连接

服务端要做到主动把消息推送给客户端,就需要长连接的支持。那么长连接是不是就是 HTTP Keep Alive 呢?

HTTP Keep Alive 又被称为持久连接,允许 HTTP 请求结束之后将 TCP 连接保持在打开状态,以便为未来的 HTTP 请求重用现存的连接。持久连接侧重于 HTTP 应用层。

所以常说的长连接是指 TCP 长连接。在移动网络下,网络状态复杂多变,长连接会因为以下因素断开:

  • 长连接进程退出

客户端被系统 Kill 掉

  • 用户切换网络

手机网络断开、Wi-Fi和蜂窝数据切换

  • NAT超时

设备休眠,NAT超时,导致公网IP回收

  • DHCP 过期

DHCP 租期过期,如果没有及时续约,同样会导致IP地址失效

如果发生长连接断开,那么就需要尽快发现并重连,此时就需要引入心跳机制.

心跳

在应用层做心跳检测连接断开,不熟悉的人不太能理解这一点。为什么使用应用层心跳,TCP 不是有 KeepAlive 机制么,通过这个机制来实现不就可以了吗?

keepalive_probes  探测次数(9次)
keepalive_time    探测的超时(2小时)
keepalive_intvl   探测间隔(75s)

事实上,TCP KeepAlive 的机制其实并不适用于此。Keep Alive 机制开启后,,如果2小时内在此套接口的任一方向都没有数据交换,TCP就自动给对方发一个保持存活探测分节(keepalive probe),会导致一下三种情况

  • 对方接收一切正常:以期望的ACK响应。2小时后,TCP将发出另一个探测分节
  • 对方已崩溃且已重新启动:以RST响应。套接口的待处理错误被置为ECONNRESET,套接 口本身则被关闭。
  • 对方无任何响应:TCP发送另外8个探测分节,相隔75秒一个,试图得到一个响应。一共尝试9次,即在发出第一个探测分节11分钟 15秒后若仍无响应就放弃。

显然默认值无法满足我们的需求,而修改过设置后就可以满足了吗?答案仍旧是否定的。因为 TCP KeepAlive 是用于检测连接的死活,而心跳机制则附带一个额外的功能:检测通讯双方的存活状态。两者听起来似乎是一个意思,但实际上并非如此。例如,某台服务器无法响应任何业务请求,使用 TCP 探针则仍旧能够确定连接状态。对客户端而言,此时的最好选择就是断线后重新连接其他服务器,而不是持续向当前服务器发送请求。

应用层架构

理清楚以上关键点,再去设计架构,就比较清晰容易了。因为几大国民应用(淘宝、支付宝、微信、QQ)都是采用类似的实现方式,也从侧面进一步印证了该设计的合理性

总结

其实无论是 “单直播间百万CCU的弹幕服务” ,还是“单用户千万粉丝的红点服务”,在整体上都脱不开这个模型。只是要根据业务特性,在实现上做一定的修改变化以适应业务的需要


参考链接

本文作者 : cyningsun

本文地址https://www.cyningsun.com/05-03-2020/mobile-application-access-tech.html

版权声明 :本博客所有文章除特别声明外,均采用 CC BY-NC-ND 3.0 CN 许可协议。转载请注明出处!

目录
相关文章
|
18天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术深度解析:从基础到应用的全面介绍
人工智能(AI)技术的迅猛发展,正在深刻改变着我们的生活和工作方式。从自然语言处理(NLP)到机器学习,从神经网络到大型语言模型(LLM),AI技术的每一次进步都带来了前所未有的机遇和挑战。本文将从背景、历史、业务场景、Python代码示例、流程图以及如何上手等多个方面,对AI技术中的关键组件进行深度解析,为读者呈现一个全面而深入的AI技术世界。
90 10
|
1天前
|
自然语言处理 文字识别 数据处理
多模态文件信息抽取:技术解析与实践评测!
在大数据和人工智能时代,企业和开发者面临的挑战是如何高效处理多模态数据(文本、图像、音频、视频)以快速提取有价值信息。传统方法效率低下,难以满足现代需求。本文将深度评测阿里云的多模态文件信息抽取解决方案,涵盖部署、应用、功能与性能,揭示其在复杂数据处理中的潜力。通过自然语言处理(NLP)、计算机视觉(CV)、语音识别(ASR)等技术,该方案助力企业挖掘多模态数据的价值,提升数据利用效率。
12 4
多模态文件信息抽取:技术解析与实践评测!
|
4天前
|
域名解析 负载均衡 安全
DNS技术标准趋势和安全研究
本文探讨了互联网域名基础设施的结构性安全风险,由清华大学段教授团队多年研究总结。文章指出,DNS系统的安全性不仅受代码实现影响,更源于其设计、实现、运营及治理中的固有缺陷。主要风险包括协议设计缺陷(如明文传输)、生态演进隐患(如单点故障增加)和薄弱的信任关系(如威胁情报被操纵)。团队通过多项研究揭示了这些深层次问题,并呼吁构建更加可信的DNS基础设施,以保障全球互联网的安全稳定运行。
|
4天前
|
缓存 网络协议 安全
融合DNS技术产品和生态
本文介绍了阿里云在互联网基础资源领域的最新进展和解决方案,重点围绕共筑韧性寻址、赋能新质生产展开。随着应用规模的增长,基础服务的韧性变得尤为重要。阿里云作为互联网资源的践行者,致力于推动互联网基础资源技术研究和自主创新,打造更韧性的寻址基础服务。文章还详细介绍了浙江省IPv6创新实验室的成立背景与工作进展,以及阿里云在IPv6规模化部署、DNS产品能力升级等方面的成果。此外,阿里云通过端云融合场景下的企业级DNS服务,帮助企业构建稳定安全的DNS系统,确保企业在数字世界中的稳定运行。最后,文章强调了全链路极致高可用的企业DNS解决方案,为全球互联网基础资源的创新提供了中国标准和数字化解决方案。
|
4天前
|
缓存 边缘计算 网络协议
深入解析CDN技术:加速互联网内容分发的幕后英雄
内容分发网络(CDN)是现代互联网架构的重要组成部分,通过全球分布的服务器节点,加速网站、应用和多媒体内容的传递。它不仅提升了访问速度和用户体验,还减轻了源站服务器的负担。CDN的核心技术包括缓存机制、动态加速、流媒体加速和安全防护,广泛应用于静态资源、动态内容、视频直播及大文件下载等场景,具有低延迟、高带宽、稳定性强等优势,有效降低成本并保障安全。
25 3
|
25天前
|
机器学习/深度学习 人工智能 自然语言处理
秒级响应 + 99.9%准确率:法律行业文本比对技术解析
本工具基于先进AI技术,采用自然语言处理和语义匹配算法,支持PDF、Word等格式,实现法律文本的智能化比对。具备高精度语义匹配、多格式兼容、高性能架构及智能化标注与可视化等特点,有效解决文本复杂性和法规更新难题,提升法律行业工作效率。
|
22天前
|
数据采集 存储 JavaScript
网页爬虫技术全解析:从基础到实战
在信息爆炸的时代,网页爬虫作为数据采集的重要工具,已成为数据科学家、研究人员和开发者不可或缺的技术。本文全面解析网页爬虫的基础概念、工作原理、技术栈与工具,以及实战案例,探讨其合法性与道德问题,分享爬虫设计与实现的详细步骤,介绍优化与维护的方法,应对反爬虫机制、动态内容加载等挑战,旨在帮助读者深入理解并合理运用网页爬虫技术。
|
2月前
|
监控 算法 物联网
院内导航怎么实现?解析信息化医院的智慧导航技术
智慧医院院内导航系统通过高精度电子地图、室内定位技术和路径规划算法,提升了医疗服务质量和患者就医体验。本文深入解析了院内导航技术的实现原理、应用案例及未来趋势,助力医院管理者和技术人员优化服务。文章最后可面查看详细医院院内导航解决方案
100 2
院内导航怎么实现?解析信息化医院的智慧导航技术
|
28天前
|
机器学习/深度学习 自然语言处理 监控
智能客服系统集成技术解析和价值点梳理
在 2024 年的智能客服系统领域,合力亿捷等服务商凭借其卓越的技术实力引领潮流,它们均积极应用最新的大模型技术,推动智能客服的进步。
70 7
|
1月前
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
77 3

推荐镜像

更多