个推消息中心如何实现多渠道消息智能下发?

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 个推爆款产品【消息中心】如何满足金融、互联网等典型行业客户的多渠道消息智能下发需求?本文介绍了消息中心的技术架构。

目前,各行业的数智化进程如火如荼,企业对数智化用户运营的需求日益旺盛;同时,在万物互联的5G时代,用户触达的渠道也变得更加丰富。企业需要更高效、智能的方式进行用户触达管理。基于此,个推将多年来积累的数字化运营经验和用户触达能力相结合,打造了“消息中心”系统产品,能够帮助企业客户将APP通知栏消息、短信、微信、钉钉的系统消息、智能人工外呼、5G消息等行业八大主流用户触达渠道进行有效整合和管理。

个推消息中心技术架构

本文从技术角度解读“个推消息中心”如何实现多渠道消息下发的智能管理。

一、用户触达的三大范式

个推在消息推送领域有十余年的实践经验,一直深度服务于企业消息管理的一线,深刻理解各行业客户在消息管理和用户触达方面的差异化需求。通过总结大量的消息下发模版,对数十个行业场景的特征进行整合,个推最终抽象出消息在多渠道的流转过程和模式,形成了个推消息中心开展用户触达的三大基础范式:并发消息、补发消息、分发消息。

1、并发消息

并发消息是指实现特定消息在多渠道的并行下发,适用于重要消息的大规模群发。比如,银行在开展某次运营活动时,采用APP消息推送+微信+短信等多渠道为用户推送活动优惠通知。

个推消息中心-并发消息处理流程

2、补发消息

为了提升消息的到达率,企业会对未触达的用户进行消息补发。比如,很多银行会选择将手机银行消息推送作为发送动帐通知的主渠道,在手机银行推送消息未到达时,再采用短信下发的方式通知客户。

个推消息中心-补发消息处理流程

3、分发消息

根据消息内容和想要触达的用户群不同,企业会通过不同渠道下发不同的消息。比如,很多银行在发送动帐通知时,会通过微信来发送200元以下的小额交易动账消息,而针对200元以上的大额交易动账则会选择短信的方式来通知用户。

个推消息中心-分发消息处理流程

个推消息中心依托用户触达的三大范式,打通了消息从产生、过滤、规则匹配、高效下发、海量消息保存以及最终展示的全链路,是一个集消息下发、精准匹配、效果追踪、数据统计等功能于一体的平台性产品。

个推消息中心能够根据下发规则对消息、渠道和用户群进行自动匹配,实现智能推送。相比传统的单渠道推送,个推消息中心不仅能够通过并发、分发、补发等方式实现更高的消息到达率;还能够帮助企业更加科学地管理渠道资源,大幅减少短信费用和外呼成本,提升用户运营效率。

二、个推消息中心的技术实现

同时,个推消息中心实现了对复杂的目标客群进行有效管理,能够满足金融、融媒体等行业客户对大规模消息实时下发、海量数据存储等方面的能力要求。

1、复杂目标客群管理

个推消息中心提供了一套统一的客户通道关系存储体系,能够将各个通道的用户体系和客户方自身的用户体系对应起来,实现了复杂目标客群的有效管理。由于客户方系统的用户体系和业务形态非常复杂,可能是1对1、1对N、N对1、N对M等对应关系,因此个推消息中心采用“N对M”为基础存储结构,并提供灵活配置的客群管理模块以支持企业进行不同类型的客户通道关系管理,满足了绝大多数企业用户的需求。

2、高并发消息下发

在类似“618”“11.11”等特殊的营销节点或运营活动期间,企业往往需要在几分钟之内完成数百万甚至千万量级消息的批量下发。这就要求消息中心系统必须具备数万QPS的消息下发能力。我们做了如下处理,以满足企业客户对系统性能的要求。

减少Redis操作

个推消息中心中,对客户通道关系的正向和逆向转化关系的读写需要严重依赖于系统的Redis。所以,额外新增的Redis操作逻辑过多会给Redis集群带来较大压力,从而对原先单渠道推送的性能产生影响。这就要求我们将业务流程中非必要的Redis操作消除。我们首先整合了Redis存储value的内容以减少Redis的读写次数;同时,用其他设计方案以代替Redis操作,例如:我们去除了依赖于Redis的分布式token存储方式,而采用其他的安全方式进行安全校验,以减少Redis集群的压力。

隔离

✦1)业务隔离
不同类型的推送任务对系统的资源占用和要求不同。比如,全推、标签推、分组推等推送任务要求系统在短时间内下发数百万甚至数千万条消息,会占用较多的资源,给系统带来较大冲击,从而对单推、列表推等实时性较高的消息下发任务产生较大影响。所以我们对不同类型的推送任务进行了业务上的隔离,以保证系统及时响应和处理优先级更高的推送任务。

✦2)存储资源隔离
同时,我们将关系型数据库里的数据根据业务特点及数据规模进行分库,保证核心功能不受边缘功能的影响;并将Redis集群隔离,划分多个Redis集群,防止单个Redis故障对整个系统产生重大影响,保障系统的稳定运行。

分布式任务调度

其次,我们将全推、标签推、分组推等规模较大的推送任务拆分成一个个小任务,并由分布式任务调度系统统一调度,由整个推送集群共同处理任务请求,以保证大批量消息的及时下发。

异步处理

消息中心推送流量往往具备流量大、波峰波谷差异巨大等特点,因此我们采用MQ、日志异步落库、异步RPC等形式,尽量避免了系统的阻塞,从而达到较高的QPS。

3、海量数据的存储能力

系统在运行的过程中必然会产生数据,并需要对相关数据进行计算和存储。个推消息中心系统需要存储的数据主要有三大部分:

✦ 客户通道关系、消息下发计数等数据。在高QPS和高实时性的推送需求下,我们必须将此类数据(数量级在百万乃至亿级)存储在缓存中以提升系统性能。

✦ 消息下发任务数据。个推消息中心需要对每个任务的详情以及每个任务下消息的到达、点击、展示等各类明细数据进行存储。此类数据目前日增量在百万及千万级不等。

✦ 部分业务方要求长时间存储的消息详情。这部分数据往往日增量在千万级到亿级不等,存储时间从半年到永久不等,且要支持较快的查询及较高的QPS。

我们采用以下方式解决海量数据存储的问题:

1)Codis集群
针对缓存数据,我们构建了分布式Codis集群,采用代理+分片的形式对Redis进行扩容。以支持TB级系统缓存数据的存储。

2)关系型数据库分库分表(MySQL和Oracle)
由于客户的统计需求变化多样,目前消息中心支持从用户、模版、通道、任务等多维度对推送任务进行统计。我们以日维度+分库分表的形式存储了所有推送任务信息的详情,支持了从用户、模版、通道、任务等维度较为实时的统计。

3)HBase
HBase是一个分布式的、面向列的开源数据库。具备高可靠、高性能、存储空间几乎可以无限扩展的特点。我们采用HBase来存储历史消息,使系统可以支持PB级数据的存储及数万QPS的用户维度消息查询并发能力。

总结
本文对个推消息中心的技术实现进行了介绍。个推消息中心能对下发的消息进行统一调度、精细化管理,尤其是对于未触达的用户可以进行多渠道的补发、并发,协助客户形成高转化的投放策略。同时个推消息中心具备高并发、高可靠等性能,能够很好地满足行业客户的运营需求。

个推“消息中心”采用私有化部署,可根据客户具体需求进行个性化定制,已经服务于银行、融媒体等多家行业客户。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
7月前
|
消息中间件 安全 物联网
MQTT常见问题之新增自定义主题后平台侧收不到发布的数据如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
存储 消息中间件 缓存
|
7月前
|
运维 监控 Cloud Native
应用研发平台EMAS常见问题之尝试设置小米的通道但是小米手机收不到消息如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
7月前
|
监控 机器人 BI
基于钉钉的阿里云管理实践(二)之消息接收
在企业云资源的日常管理中,实时监控和报警通知对于维持系统稳定性至关重要。阿里云提供了一系列的监控服务,可以对云资源进行实时监控,并在出现问题时发送报警。将这些报警消息及时推送到钉钉,可以让团队成员迅速响应,采取必要的措施。本教程将指导您如何将阿里云账号的报警监控消息推送到钉钉上。
267 1
基于钉钉的阿里云管理实践(二)之消息接收
|
7月前
|
API 开发者
【产品上新】文档中心新增订阅和消息推送功能
【产品上新】文档中心新增订阅和消息推送功能
165 11
|
7月前
|
移动开发 小程序 Go
【社区每周】小程序消息订阅插件升级为消息订阅接口(2022年8月第五期)
【社区每周】小程序消息订阅插件升级为消息订阅接口(2022年8月第五期)
48 0
|
消息中间件 存储 负载均衡
对于钉钉OA事件订阅出现的网络波动导致的通知丢失问题
对于钉钉OA事件订阅出现的网络波动导致的通知丢失问题
137 1
|
Web App开发 缓存 前端开发
🎊🎊🎊深入 ServiceWorker,消息推送,后台同步,一网打尽!
上一章讲到了ServiceWorker的基础使用,但是它的功能不仅仅只有这些,还有很多很多,比如消息推送,后台同步,甚至还有WebRTC,这一章我们来进阶ServiceWorker。
398 0
|
消息中间件 监控 JavaScript
聊聊 消息中心的设计与实现
聊聊 消息中心的设计与实现
|
小程序 开发者
小程序云开发实现订阅消息推送!
小程序云开发实现订阅消息推送!
小程序云开发实现订阅消息推送!