写点什么

海量终端,秒级送达!腾讯云移动推送信鸽后台探秘

  • 2014-07-11
  • 本文字数:1494 字

    阅读完需:约 5 分钟

随时移动应用大规模的涌上市场,用户的选择面越来越广,如何更有效的吸引用户留住用户是移动运营的一大挑战, 而通过向目标用户精准推送价值信息,唤醒沉默用户已经是移动运营的常规方式,为了降低开发成本以及实现在推送上抵达率、推送速度以及精准推送上更高性能要求,很多开发者选择了第三方推送平台,腾讯云移动推送信鸽推送是目前被广泛使用的第三方推送平台。它究竟是如何实现海量终端,秒级触达的?我们一一揭开。

终端单连接

都说用 andoird 手机的男人一定是好男人,因为他每天都要回家充电。为什么 android 那么费电?因为后台服务多,系统无法休眠。

为什么 android 手机配置各种秒 iphone,却总是被骂卡出翔?因为后台服务多,吃光了内存和 CPU。

为什么 android 手机明明什么都没干,套餐流量就爆掉了?因为后台服务多,网络连接多,大肆挥霍你的流量。

消息推送已经成为 APP 的标配。要推送就要有长连接,而长连接要靠后台服务来维持。传统的推送实现中,每个 APP 使用一条长连接,启动一个后台服务,你一个我一个,android 的悲剧就发生了。

上帝说,要有光,于是腾讯云新一代推送服务信鸽横空出世。如果所有的 app 都集成了信鸽推送,那么装 1000 个 app,手机上会有多少后台服务和长连接?不是 998,也不是 98,只有 1 个后台服务,1 条长连接!所有终端、后台之间的通讯都会汇聚在这一条连接上传输,配合精心设计的交互协议和逻辑,信鸽把电量、流量、系统资源的消耗降到最低,并且不随 app 数量增加而明显增长。Android 逆袭 iphone 不是梦,妈妈再也不用担心我的手机了。

海量终端接入

推送秒达的关键,就是终端与后台之间有稳定的长连接。但是在这个辽阔而神奇的国度,各位亲们身在天南海北,网络五花八门,接入谈何容易。子曾经曰过,人世间最遥远的距离,不是生与死,而是电信和联通。但是别忘了,终端接入正是是腾讯的独门绝技。倚仗腾讯遍布全国的数据中心、强大的跨运营商带宽资源以及完善的异地互联专线,信鸽提供全国、全运营商覆盖的终端就近接入能力。接入信鸽,享受 QQ、微信级别的网络接入。

解决了能否连接的问题,接下来就要解决维持连接的问题。腾讯的各项业务每天都服务着海量用户,信鸽自然不能小家子气。信鸽的接入层架构使用了腾讯独步江湖的 TGW 组件,实现单 IP 数千万连接的 IP 收敛和负载均衡能力。接入服务器采用单线程异步架构实现高效的请求转发,8 线程 8G 内存服务器轻松支持百万终端。掐指一算,即便接入微信那么多的终端也用不掉腾讯庞大服务器集群的零头。

海量消息分发

海量终端在手,还得有海量消息的吞吐能力,迅速把消息分发给千万终端是一件极富挑战性的事情。信鸽的系统架构全面贯彻了云时代 Scale-out 的思想,采用消息存储 - 转发机制,消息经过简单的两跳路由即可送达终端,平均耗时仅数百毫秒;若目标终端不在线,消息将保存在离线存储中,待目标下次上线时下发。信鸽的存储服务采用可平行扩展的 CKV 全内存存储和 CDB 高性能数据库,并发访问量超过每秒 60 万。信鸽逻辑服务器使用单线程异步逻辑架构,单机每秒请求处理能力可达 4 万以上。同时,逻辑服务器均采用无状态设计,在高性能负载均衡服务和 CVM 虚拟机服务的支撑下可以轻松平行扩展,成倍提升消息吞吐能力和终端支撑能力。信鸽现在的部署规模已经达到每分钟千万量级消息吞吐,而且这个能力还会随着业务的不断涌入持续扩张。

作为腾讯云“移动三剑客”之一,信鸽大量使用了腾讯云的成熟技术(包括 CVM、CKV、CDB 和 TGW 等),这些技术也是信鸽在实现海量高性能的同时节约成本,为开发者免费服务的关键, 更重要的是,通过将价值信息在合适的时间推送给合适的用户,实现应用活跃度和留存率拉升的目的。

2014-07-11 22:591904
用户头像

发布了 1539 篇内容, 共 720.4 次阅读, 收获喜欢 2514 次。

关注

评论

发布
暂无评论
发现更多内容

MySQL数据库技术与应用:数据查询

华为云开发者联盟

MySQL 数据库 存储

Linux基金会唯一官方微服务培训课程免费学 | 快速构建稳定可靠的微服务应用

TARS基金会

开源 微服务 培训 Linux基金会 TARS

最新:央行副行长详解数字人民币,信息量巨大!

CECBC

人民币 数字人民币

111

不在调上

java安全编码指南之:字符串和编码

程序那些事

安全编码指南 java安全编码 java安全编码指南

Spring 5 中文解析数据存储篇-Spring框架的事物支持模型的优势

青年IT男

Spring5 数据存储

对比 Redis 中 RDB 和 AOF 持久化

超超不会飞

切片真的是引用类型嘛

Gopher指北

Go 语言

数字货币交易所源码开发,区块链交易系统搭建服务商

13530558032

Golang领域模型-资源库

奔奔奔跑

微服务 领域驱动设计 DDD Go 语言

第六周学习总结

Vincent

极客时间 极客大学

查找数组中最大值的5种方法!(动图演示)

王磊

Java 面试

anyRTC语音开黑demo正式上线

anyRTC开发者

音视频 WebRTC 直播 RTC

数字资产会成为人类最大的资产

CECBC

数字资产 数字化时代 孙正义

互联网只改变了商业的一部分,区块链将从根本上重构商业

CECBC

区块链 去中心化 互联网金融

USDT支付系统开发技术方案,数字货币承兑商支付

13530558032

我是如何从0到1完成一个简单的中间件(1)

sinsy

Java 中间件

追光逐影:焦距与镜头语言

北风

创作 生活 摄影 光影 摄影征文

再深入一点|binlog和relay-log到底长啥样?

艾小仙

Java MySQL 数据库 架构设计

随想之UI+API

云杉

第六周作业

Vincent

极客时间 极客大学

这是一个奇怪的因果关系

陈磊@Criss

摄影

“度拉拉”升职记:中国语音助手的成长史

脑极体

裳雨

GongTeng95

写作 写作平台

【获奖名单公布】程序员摇身一变摄影师,属于技术人的摄影展示大赛

InfoQ写作社区官方

写作平台 征稿 热门活动

iPad Air把它大哥iPad Pro按在地上摩擦

徐说科技

关于数据存储引擎结构,没有比这篇更详细的

华为云开发者联盟

数据库 nosql 存储

别闹,我用1个BTC居然买不了一个爱马仕包

猫Buboo

区块链+

分库分表中间件的高可用实践

无毁的湖光

MySQL TCP 高可用 分库分表 高性能

血的教训!千万别在生产使用这些 redis 指令

楼下小黑哥

Java redis 生产事故

flutter之踩坑的日子(2)

霜蓝手环

小程序flutter, 跨平台 Flutter Android Apk

海量终端,秒级送达!腾讯云移动推送信鸽后台探秘_移动_InfoQ 中文站_InfoQ精选文章