基于阿里云搭建全量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产品使用合集的概述,涵盖数据处理的各个环节。
|
7月前
|
SQL 关系型数据库 MySQL
实时数仓 Hologres操作报错合集之遇到报错:连接到 FE 失败,剩余的连接槽保留用于非复制超级用户连接,该怎么处理
在使用阿里云实时数仓Hologres时,可能会遇到不同类型的错误。例如:1.内存超限错误、2.字符串缓冲区扩大错误、3.分区导入错误、4.外部表访问错误、5.服务未开通或权限问题、6.数据类型范围错误,下面是一些常见错误案例及可能的原因与解决策略的概览。
|
7月前
|
SQL 缓存 分布式计算
DataWorks操作报错合集之全量离线同步或准实时同步任务报错Code:[OdpsWriter-31],如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
7月前
|
分布式计算 DataWorks 关系型数据库
DataWorks操作报错合集之离线同步任务中,把表数据同步到POLARDB,显示所有数据都是脏数据,报错信息:ERROR JobContainer - 运行scheduler 模式[local]出错.是什么原因
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
8月前
|
SQL 缓存 算法
实时计算 Flink版产品使用合集之可以把初始同步完了用增量模式,但初始数据还是要同步,除非初始的数据同步换成用其他工具先同步过去吧,是这个意思吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
8月前
|
SQL Java 中间件
实时计算 Flink版产品使用合集之在进行全量拉取时,任务完成之后内存没有被完全释放如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
Kubernetes 网络协议 容器
k8s搭建集群报错汇总—202302【更新】
k8s搭建集群报错汇总—202302【更新】
151 0
如何将文章同步到其他平台?
如何将文章同步到其他平台?
460 0
如何将文章同步到其他平台?
|
8月前
|
存储 Kubernetes 数据库
​分分钟教你在阿里云 K8s 上部署流数据库 RisingWave
本文主要介绍如何在阿里云【容器服务 Kubernetes 版 ACK】上部署 RisingWave 集群。RisingWave当前提供单机试玩模式,以及基于 K8s 的分布式部署模式,生产中我们只推荐后者。K8s 虽然上手门槛高,但只需按照本篇文章的步骤依次操作,你依然能轻松驾驭一个生产集群。
|
弹性计算 Oracle Ubuntu
服务器迁移上云步骤、流程及方法
服务器迁移上云步骤、流程及方法,上云是趋势,越来越多企业的IDC服务器选择迁移上云,迁移上云的方式有很多,阿里云提供服务器迁移中心SMC来帮助用户迁移上云。使用SMC服务器迁移中心,将您的源服务器方便快捷地迁移至阿里云,支持的迁移源类型包括IDC服务器、虚拟机、其他云平台的云主机或其他类型的服务器。阿里云SMC服务器迁移中心了解一下,附Linux系统迁移上云和Windows系统迁移上云视频教程:
644 0