热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

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

前言目前,各行业的数智化进程如火如荼,企业对数智化用户运营的需求日益旺盛;同时,在万物互联的5G时代,用户触达的渠道也变得更加丰富。企业需要更高效、智能的方式进行用户触达管理。基于



前言


目前,各行业的数智化进程如火如荼,企业对数智化用户运营的需求日益旺盛;同时,在万物互联的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的用户维度消息查询并发能力。


总结


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


个推“消息中心”采用私有化部署,可根据客户具体需求进行个性化定制,已经服务于银行、融媒体等多家行业客户。 如果你对“消息中心”感兴趣,欢迎通过个推企业微信咨询 ,我们会第一时间安排专属顾问为您提供一对一服务。





推荐阅读
  • PHP面试题精选及答案解析
    本文精选了新浪PHP笔试题及最新的PHP面试题,并提供了详细的答案解析,帮助求职者更好地准备PHP相关的面试。 ... [详细]
  • 深入浅出:Hadoop架构详解
    Hadoop作为大数据处理的核心技术,包含了一系列组件如HDFS(分布式文件系统)、YARN(资源管理框架)和MapReduce(并行计算模型)。本文将通过实例解析Hadoop的工作原理及其优势。 ... [详细]
  • 构建高性能Feed流系统的设计指南
    随着移动互联网的发展,Feed流系统成为了众多社交应用的核心组成部分。本文将深入探讨如何设计一个高效、稳定的Feed流系统,涵盖从基础架构到高级特性的各个方面。 ... [详细]
  • 本文详细记录了一位Java程序员在Lazada的面试经历,涵盖同步机制、JVM调优、Redis应用、线程池配置、Spring框架特性等多个技术点,以及高级面试中的设计问题和解决方案。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • Golang与微服务架构:构建高效微服务
    本文探讨了Golang在微服务架构中的应用,包括Golang的基本概念、微服务开发的优势、常用开发工具以及具体实践案例。 ... [详细]
  • 优雅地记录API调用时长
    本文旨在探讨如何高效且优雅地记录API接口的调用时长,通过实际案例和代码示例,帮助开发者理解并实施这一技术,提高系统的可观测性和调试效率。 ... [详细]
  • RabbitMQ 核心组件解析
    本文详细介绍了RabbitMQ的核心概念,包括其基本原理、应用场景及关键组件,如消息、生产者、消费者、信道、交换机、路由键和虚拟主机等。 ... [详细]
  • Java高级工程师学习路径及面试准备指南
    本文基于一位朋友的PDF面试经验整理,涵盖了Java高级工程师所需掌握的核心知识点,包括数据结构与算法、计算机网络、数据库、操作系统等多个方面,并提供了详细的参考资料和学习建议。 ... [详细]
  • 本文深入探讨了MySQL中的高级特性,包括索引机制、锁的使用及管理、以及如何利用慢查询日志优化性能。适合有一定MySQL基础的读者进一步提升技能。 ... [详细]
  • Windows环境下Oracle数据库迁移实践
    本文详细记录了一次在Windows操作系统下将Oracle数据库的控制文件、数据文件及在线日志文件迁移至外部存储的过程,旨在为后续的集群环境部署做好准备。 ... [详细]
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • 一家位于长沙的知名网络安全企业,现面向全国诚聘高级后端开发工程师,特别欢迎具有一线城市经验的技术精英回归故乡,共创辉煌。 ... [详细]
author-avatar
docetaxel
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有