极光推送技术原理解析

上传人:s****a 文档编号:193435073 上传时间:2023-03-10 格式:DOCX 页数:3 大小:41.15KB
返回 下载 相关 举报
极光推送技术原理解析_第1页
第1页 / 共3页
极光推送技术原理解析_第2页
第2页 / 共3页
极光推送技术原理解析_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述
极光推送技术原理:移动无线网络长连接移动互联网应用现状因为手机平台本身、电量、网络流量的限制,移动互联网应用在设计上跟传统PC 上的应用很大不一样,需要根据手机本身的特点,尽量的节省电量和流量,同时 又要尽可能的保证数据能及时到达客户端。为了解决数据同步的问题,在手机平台上,常用的方法有2种。一种是定时去服 务器上查询数据,也叫Polling,还有一种手机跟服务器之间维护一个TCP长 连接,当服务器有数据时,实时推送到客户端,也就是我们说的Push。从耗费的电量、流量和数据送达的及时性来说,Push都会有明显的优势,但Push 的实现和维护成本相对较高。在移动无线网络下维护长连接,相对也有一些技术 上的难度。本文试图给大家介绍一下我们极光推送在Android平台上是如何维 护长连接。移动无线网络的特点因为IP v4的IP量有限,运营商分配给手机终端的IP是运营商内网的IP, 手机要连接Internet,就需要通过运营商的网关做一个网络地址转换(Network Address Translation, NAT)。简单的说运营商的网关需要维护一个外网IP、 端口到内网IP、端口的对应关系,以确保内网的手机可以跟Internet的服务 器通讯。I nfe rndSGSNGGSNCorporate neMork 2Corporate network 1Home PLMN图片源自.NAT功能由图中的GGSN模块实现。大部分移动无线网络运营商都在链路一段时间没有数据通讯时,会淘汰NAT表 中的对应项,造成链路中断。Android平台上长连接的实现为了不让NAT表失效,我们需要定时的发心跳,以刷新NAT表项,避免被淘汰。Android上定时运行任务常用的方法有2种,一种方法用Timer,另一种是 AlarmManager。TimerAndroid的Timer类可以用来计划需要循环执行的任务,Timer的问题是它需 要用WakeLock让CPU保持唤醒状态,这样会大量消耗手机电量,大大减短于 机待机时间。这种方式不能满足我们的需求。AlarmManagerAlarmManager是Android系统封装的用于管理RTC的模块,RTC (Real Time Clock)是一个独立的硬件时钟,可以在CPU休眠时正常运行,在预设的时间到 达时,通过中断唤醒CPU。这意味着,如果我们用AlarmManager来定时执行任务,CPU可以正常的休眠, 只有在需要运行任务时醒来一段很短的时间。极光推送的Android SDK就是基 于这种技术实现的。服务器设计当有大量的手机终端需要与服务器维持长连接时,对服务器的设计会是一个很大 的挑战。假设一台服务器维护10万个长连接,当有1000万用户量时,需要有多达100 台的服务器来维护这些用户的长连接,这里还不算用于做备份的服务器,这将会 是一个巨大的成本问题。那就需要我们尽可能提高单台服务器接入用户的量,也 就是业界已经讨论很久了的C10K问题。C2000K针对这个问题,我们专门成立了一个项目,命名为C2000K,顾名思义,我们的 目标是单机维持200万个长连接。最终我们采用了多消息循环、异步非阻塞的模 型,在一台双核、24G内存的服务器上,实现峰值维持超过300万个长连接。后记稳定维护长连接是推送平台的一个基础,极光推送团队将会在这方面长期投入, 以保证用户能有效的节省电量、流量,同时数据能实时送达。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!