基于阿里云搭建全量push系统

简介: push又称消息推送、消息触达。叫法有很多但目的只有一个,就是通过各种渠道或方式将指定内容告知到指定用户。所以我们也可以称之为通知。

Push:有主动推的意思,实际上就是一个服务端主动推送消息到用户App的一个系统。“苹果之父”乔布斯曾说:“根据大众的需要去设计产品其实是非常难的。因为在很多情况下,人们并不知道自己想要什么,所以需要你去展示给他看。”我感觉这句话用在推送上也是可行的。

今天主要从新闻app产品类型来介绍push系统的搭建与实践。

1.png

2.png

  • 静态全量库,非实时更新,分布式提取
  • 优先级排序(用户活跃度),保证用户体验
  • 常备部分资源,保证及时响应
  • 动态扩容,减少闲置资源

系统整体架构

3.jpg

采用阿里云产品的存储方案

4.jpg

机器复用和阿里云ecs的动态扩容

5.jpg

6.jpg

多播或群发
由兴趣,关系,LBS等部门针对不同人群做的群发push

难点 计算慢:特征工程(小时),特征匹配(分钟),用户设备更新
大批量:任务多,互相挤压,高低优先
频繁:下发条数太多,影响用户体验(push太多)
厂商通道限额

应对
数据架构:上面已经提到过的,hbase+spark
动态扩容:关键指标监控,自动触发扩缩容
混排:特征匹配混排,CTR试投,控制单个用户下发条数
限流器:厂商通道限制
物理隔离:分为重要通道和普通通道

混排与试投

7.jpg

厂商通道限额问题
总配额限制:额度熔断
QPS限制:限流器
单设备配额限制
偶发rt抖动:自动扩容,熔断

三种分布式限流器

8.jpg

短对点/长链接
与APP端的TCP长连接
用于push,IM,配置下发等多类功能

难点 :
高并发连接数(千万级)
低延时需求(消息下发时间短)
大消息量(X十亿级消息数)
高到达率要求:连接稳定,分运营商机房,动态均衡算法
增加在线时长:心跳算法

长连接服务端基本逻辑

9.jpg

批量发送

10.jpg

连接和断开

11.jpg

目录
相关文章
|
5月前
|
Prometheus DataWorks 安全
DataWorks产品使用合集之如何完成更新完自动推送到外部系统触发更新
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
6月前
|
项目管理 开发工具 Android开发
三类代码协同模式问题之开发者将远程上游仓库克隆到本地,并在本地创建开发分支问题如何解决
三类代码协同模式问题之开发者将远程上游仓库克隆到本地,并在本地创建开发分支问题如何解决
|
6月前
|
监控 JavaScript Serverless
函数计算产品使用问题之如何部署一个未构建的Vue项目,并实现从Gitee仓库自动同步更新
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
6月前
|
缓存 Java 测试技术
阿里云云效产品使用合集之如何开启增量检查
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
8月前
|
SQL 缓存 算法
实时计算 Flink版产品使用合集之可以把初始同步完了用增量模式,但初始数据还是要同步,除非初始的数据同步换成用其他工具先同步过去吧,是这个意思吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
8月前
|
运维 Devops Shell
云效产品使用报错问题之在codeup上创建的代码分支或者代码变动,同步到gitlab失败如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
Kubernetes 网络协议 容器
k8s搭建集群报错汇总—202302【更新】
k8s搭建集群报错汇总—202302【更新】
155 0
|
数据安全/隐私保护
在服务器迁移中心中导入迁移源
在服务器迁移中心中导入迁移源
90 3
如何将文章同步到其他平台?
如何将文章同步到其他平台?
462 0
如何将文章同步到其他平台?
|
开发工具 git
如何把其他代码托管平台git仓库迁移到github还保留历史日志记录?图解步骤,值得收藏!
我在其他的代码托管平台(不是github)有一套代码,不同代码托管平台之间没有相互迁移的功能,怎么将仓库代码提交到github仓库呢?我会讲解适合于所有不同托管平台Git仓库之间的迁移方法,所以就不要老是抱怨着为什么没有外部仓库迁移过来的功能了。
331 0
如何把其他代码托管平台git仓库迁移到github还保留历史日志记录?图解步骤,值得收藏!