50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

  • 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:591935
用户头像

发布了 1541 篇内容, 共 726.7 次阅读, 收获喜欢 2518 次。

关注

评论

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

BAT互联网大厂JAVA岗高频面试题总结,看完offer成功率再翻一番

Java 程序员 后端

Github点赞接近 70k 的Spring Cloud学习教程+实战项目推荐!牛批

Java 程序员 后端

Github神作!2021Java秋招高级面试指南,吃透至少阿里P6

Java 程序员 后端

BATJ真题突击:Java基础+JVM,springboot和vue实战视频

Java 程序员 后端

dubbo实战之三:使用Zookeeper注册中心,java后端工程师面试题

Java 程序员 后端

gRPC学习之三:初试GO版gRPC开发,Java面试题中高级

Java 程序员 后端

HashMap详解,hadoop源码分析完整版

Java 程序员 后端

CoProcessFunction实战三部曲之一:基本功能,软件技术java工程师方向

Java 程序员 后端

Gradle构建多模块SpringBoot应用,mybatis面试常问问题

Java 程序员 后端

Docker下的Nacos环境开发,mysql联合索引原理

Java 程序员 后端

HashMap(jdk1,Java程序员进大厂面试必备基础技能

Java 程序员 后端

GateWay 网关服务,java程序员进阶路线

Java 程序员 后端

Chrome上的这些灵魂插件太猛了,碾压其他同款,java架构师成长直通车分享

Java 程序员 后端

Docker下,两分钟极速体验Nacos配置中心,mysql视频教程百度网盘

Java 程序员 后端

GitHub上标星90k+的《Java知识总结,java基础选择题填空

Java 程序员 后端

GitHub上访问下载破百万的神仙文档《Java面试神技》看完我呆了

Java 程序员 后端

Bootstrap框架快速上手,这位阿里P7大牛分析总结的属实到位

Java 程序员 后端

Elasticsearch的高阶使用方法有哪些?,rabbitmq入门案例

Java 程序员 后端

透过表象看REST

Jxin

Github又爆神作,阿里JVM垃圾回收全解小册全网开源!,已开源

Java 程序员 后端

HashMap源码解析,操作系统原理与实践教程第三版答案

Java 程序员 后端

hive学习笔记之七:内置函数,mybatis防止sql注入原理

Java 程序员 后端

Dubbo—SPI及自适应扩展原理,java项目系统架构图

Java 程序员 后端

CDH5部署三部曲之二:部署和设置,高薪程序员必会

Java 程序员 后端

Fluid 给数据弹性一双隐形的翅膀 -- 自定义弹性伸缩,多线程面试题2021

Java 程序员 后端

golang实战之flag包,Redis灵魂14问

Java 程序员 后端

Hello Git快速入门,redis常见数据结构以及使用场景分析

Java 程序员 后端

Helm部署的服务如何修改配置,nginx面试题负载均衡

Java 程序员 后端

Apache Log4j2详解,【高级Java架构师系统学习

Java 程序员 后端

GitHub调优热榜,居然是腾讯T9熬肝撰写的594页MySQL优化手册,简直太香

Java 程序员 后端

CNCF 官方大使张磊:什么是云原生?,一个Java程序员的面试心得

Java 程序员 后端

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