从微信谈起 如何优化互联网APP心跳机制

  微信的信令风暴将人们的目光导向心跳机制,那么心跳机制是怎么回事呢?

  最早的心跳机制用于服务器的安全备份机制,是为了防止服务器死机,而在服务器之间采用专用的端口和线路,周期性传送简短的信息,心跳就是形象的比喻。一旦收不到对方的心跳信息,服务器可以接管对方的业务,避免业务的停滞。为了业务的顺畅进行,服务器发送的心跳信息可以非常频密。

  这种机制被手机上的">互联网应用所借用,无论是Android的原生应用,还是QQ、微博和微信,都采用了这种心跳机制,也就是终端定时向应用服务器发送简短的信息。但是与服务器之间的心跳机制相比,还是有一些差别:

  1. 心跳信息是单方向的,只有终端发到应用服务器;

  2. 心跳信息的周期比较长,比如旧版QQ的心跳周期为30s,新版QQ为180s,微信为300s,Google原生应用为1680s左右。

  另外,互联网应用的心跳包除了宣告终端在线外,还有一项重要的任务,就是提供终端的即时地址,方便应用服务器的寻址。

  有了互联网应用的心跳机制,应用服务器可以及时下发(Push)用户相关的信息,比如微信中的短消息、图片或者语音等。

  心跳包也会带来很多副作用,比如终端更为费电,还可能给移动通信网络带来信令风暴。

  看起来很完美的心跳机制,为什么会给移动通信网络带来信令风暴呢?

  原来,移动通信网络中由于用户众多、资源稀缺,每个用户都是动态占用资源,比如IP地址以及无线信道。每次发送心跳包,都需要移动通信网络为用户分配资源,分配的过程体现在信令的发送和接收上。一次心跳包的发送过程,牵涉的信令多达几十条。

  随着互联网APP的普及,大量的终端周期性地发送心跳包,效果类似于IP网络中的DDOS,必然对移动通信网络设备带来冲击,造成拥塞等情况,这种现象就是信令风暴。信令风暴不仅中国移动的GPRS网络存在,中国联通的WCDMA网络、中国电信的CDMA网络都存在。由于中国移动用户数量庞大,因此信令风暴的影响更显著而已,简而言之,就是50步与100步的差别。

  互联网APP的心跳机制对移动网络的冲击很大,那么有什么方法可以缓解乃至解决这个问题呢?

  从互联网APP的角度看,应该区分是移动网络接入还是WLAN接入,智能调整心跳包的发送频率。在移动网络接入时,降低心跳包的发送频率,这样虽然服务器推送的信息会有一些延迟,但是终端更省电,移动网络更稳健。比如旧版QQ的心跳周期为30s,新版QQ为180s,微信为300s,已经呈现出逐步延长的趋势,还可以再调整,直至接近Google原生应用的1680s左右。

  目前,互联网APP心跳包的发送频率由APP一手包办,这是不合理的,应该开放给用户进行设置,允许用户在省电和及时等多个场景间切换。

  现在每个人的手机上都装有多个互联网APP,比如QQ、微信、微博和淘宝等,如果每个APP都发送心跳包,心跳包的发送频率将大幅增加。像微信、QQ 等APP,可以考虑联合发送心跳包,这样可以减少不少心跳包。另外如果从操作系统的层面统一心跳包,效果会更好。苹果的IOS已经做了一个很好的尝试,建立了一个位置寄存器APNS,将所有的APP联合起来,统一发送心跳。Android系统其实也可以如法炮制,据称小米手机有意这样做,像阿里OS也应该可以做。运营商自己开发的OS更加应该是这方面的表率。

  终端侧的这些做法,将能有效减少心跳包的发送,从而缓解信令风暴。

  从网络侧的角度,如果终端发送心跳包是一个既成事实的话,及时进行设备扩容就是势在必行的了。目前看,基站控制器以及核心网的设备受信令风暴的影响大,需要优先扩容。当然,运营商有苦衷,认为是在帮APP打工。但是,运营商也必须明白顺势而为的重要性,与其被动接招,不如早作打算。

  什么打算呢?就是宣传从移动网络的角度看,心跳包并不是必须的。利用短消息与APP深度整合,不用心跳包也可以方便地实现APP消息的推送,又节省终端的电力,又避免对移动网络的冲击,两全其美,何乐不为呢?

  这样釜底抽薪后,心跳机制对移动网络的冲击将是可以控制的了。

时间: 2024-08-02 05:38:51

从微信谈起 如何优化互联网APP心跳机制的相关文章

心跳机制该怎么优化

微信的信令风暴可以让人们的目光导向心跳机制,那么为什么会发生心跳机制? 为什么又会给移动通信网络带来信令风暴呢? 早期的心跳机制是用于服务器的安全备份机制,其目的是为了防止服务器突然死机,因此在服务器之间采用专用的端口和线路,简短的信息通过周期性的传递,因此形象的比喻成心跳.一旦对方的心跳信息接收不到,服务器就可以接管对方的业务,避免业务进行停滞.服务器发送的心跳信息可以很频密,从而使业务进行的畅通无阻. 这种机制被手机上的互联网应用所借用,无论是Android的原生应用,还是QQ.微博和微信,

移动互联网APP推广的最高境界

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 移动互联网APP推广的最高境界 我之前是做推广的,现在也是做推广的,做了推广好多年.最深的感悟就是推广是非常重要的事,移动互联网行业里有很多人是不怎么重视推广的,特别是一些老板,这些老板固执的认为只要我技术牛逼,产品牛逼就一定能成功,结果到最后基本是game over了,时代会把你扔的远远的,所以那些固执.对推广有偏见的领导者成不了什么大事.

在一个老外微信PM的眼中,中国移动App UI那些事儿

在一个老外微信PM的眼中,中国移动App UI那些事儿 时间:2014-12-12 16:07 来源:36kr 作者:36kr 本文编译自Dan Grover的博客,他现在是腾讯微信的产品经理.以下是他从旧金山搬到广州后的近半年时间里,在试用过微信微博等中国主流移动App后,总结出的中美App在设计理念上的差异,并对中国移动App UI的发展趋势给出了自己的看法. 今年夏天,我从旧金山搬到了广州工作,成为了微信的一名产品经理. 搬到一个陌生的国家意味着许多事情要从头学起:比如要讲外语.适应饮食习

互联网APP:从用户友好到网络友好

互联网APP设计时不光要考虑使用者,还考虑安装APP的终端,乃至终端所接入的网络 这次微信的信令风暴引发了人们对移动网络容量和性能的关注,引发了人们对互联网APP与移动网络之间和谐关系的关注.就像"与环境友好"是我们的准则一样,互联网APP在设计时,需要考虑得更多:从对用户友好,扩展到对网络也友好. 通常对用户友好是互联网APP在设计时的主要诉求,因为拥有独到的功能.典雅的界面以及良好的用户体验,是互联网APP吸引眼球.抓住用户的关键.但是随着APP装机用户数量的增加,达到几千万甚至上

【转载】运维角度浅谈MySQL数据库优化

 运维角度浅谈MySQL数据库优化 2015-06-02 14:22:02 标签:mysql优化   mysql分库分表分区 mysql读写分离 mysql主从复制 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://lizhenliang.blog.51cto.com/7876557/1657465   一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善.这篇博文主要谈My

腾讯将在微信正式上线首款互联网

1.腾讯将在微信正式上线首款互联网 腾讯将正式上线其首款互联网金融产品,即微信版余额宝,合作方为华夏基金.南方基金杨德龙则表示,微信理财的优势就是用户群大.操作性强,但是微信用户并不能通过微信财付通进行购物,因此与余额宝相比优势并不明显. 2.淘宝欲按接口调用次数收费 引服务商惊慌 淘宝服务市场正在考虑按照服务商对API调用次数收费,这一方案将有可能在今年4月份正式推出.由于多数传统企业电商ERP无法实现企业用户按照API调用次数模式收费,淘宝服务市场这一最新计划相当于多收取了传统企业电商ERP

浅谈android性能优化之启动过程(冷启动和热启动)

本文介绍了浅谈android性能优化之启动过程(冷启动和热启动) ,分享给大家,具体如下: 一.应用的启动方式 通常来说,启动方式分为两种:冷启动和热启动. 1.冷启动:当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动. 2.热启动:当启动应用时,后台已有该应用的进程(例:按back键.home键,应用虽然会退出,但是该应用的进程是依然会保留在后台,可进入任务列表查看),所以在已有进程的情况下,这种启动会从已有的进程中来启动应用,这个方式叫热

浅谈网站内部优化

酝酿了很久今天小c就按个人经验说说站内优化的一些建议.大家都知道内容为王外链为皇的道理,何为内容为王,原创?当然,内容为王的真正含义版本不一,原创是基础这个是无可厚非的,下面小c谈谈如何做好站内优化吧. 1.合理的url路径的设计 为什么我要把它放在第一位来说呢,因为小c觉得它是最重要的.浏览网站需要什么,路径对吧,合理的url设计不仅美观更加方便搜索引擎的收录,大大 提高搜索引擎的友好度.如果一开始url设计不合理,不仅影响搜索引擎对网站的不友好,对今后的优化工作会有非常大的影响,所有把url

浅谈站内优化你我容易忽视的三点细节

随着搜索引擎对于算法的不断更新,我们可以看到一个很明显的信号,那就是搜索引擎对于站点内部结构越来越关注.对此如果你想要给搜索引擎留下一个好的印象,你不在只是做几个高质量的外链就可以的,你还需要有一个合理的站内内部结构做坚实的后盾. 我们在做站点的内部优化的过程中,我们不仅仅需要考虑到搜索引擎索引,同时我们还需要考虑到用户的友好体验度.我们在内链建设中需要注意来自各方面的细节,只有我们做好内链建设的细节,才能使优化达到我们想要的效果.那么笔者将在下文中分享自己的三点心得? 一:不要主导航栏目上安排