一个实时精准触达系统的自我修养

简介: 授人以鱼不如授人以渔~

作者:闲鱼技术-剑辛

问题定义

在互联网行业,唯一不变的就是一直在变化。作为技术同学,我们经常会碰到以下几种需求:
当用户收藏的商品降价后及时通知用户,促进双方交易达成;新用户或90天内未成交的用户浏览多个商品后引导用户主动和卖家聊天、也可以给用户发个红包促进用户首单的达成;

这些需求本质上是这样的逻辑:实时采集分析用户行为,通过规则计算,对符合条件的用户进行精准触达。普通开发模式很难比较好的承接这类需求,为此我们专门研发了omega系统解决这类问题。omega系统分为三个子系统:

我们在之前文章已经详细说明前两部分,本次我们将着重阐述用户触达系统是如何设计和实现策略灵活配置和精准触达的。

系统设计

2.1、逻辑架构

undefined
为了方便读者理解,我们简单回顾omega系统的逻辑架构。omega系统基于高内举低耦合的原则进行拆分,每个部分本身是独立完整的系统,也可以组装后提供服务。

  • 第一层是用户行为采集中心,通过采集端上请求的MTOP(应用网关)接口和端上用户行为埋点,将数据清洗为规整的用户行为数据;
  • 第二层是CEP规则计算中心,通过解析DSL生成Blink(Flink)流计算任务,输出满足规则的用户;
  • 第三层为用户触达中心,定义触达策略和通道,将策略实时触达给用户。

三层环环相扣,既可单独对外提供服务,也可联合对外承接业务,目前已经在承接用户增长、玩法和安全相关业务。

以用户增长业务举例,当用户在体验的过程中,运营通过合理策略组合,引导用户完成交易行为,到达产品形态上的“啊哈”时刻。这些策略在端内可能是权益透出、POP和实时Push,在端外是Push、短信和外呼等手段。Omega系统通过整合端内/端外的主动/被动触达渠道,以用户的实时状态为核心,实现了一套满足长周期运营的策略编排技术方案体系。

2.2、触达流程

undefined
触达流程本身比较明确,我们将流程拆分为多个小的节点,每个节点之间通过配置化方式组合,保证每个节点是可插拔、可替换的实现。整体用户触达系统处理流程如下:

  • 接收CEP规则计算结果,包括规则名和满足规则的用户;
  • Action路由层根据规则名查询所有订阅此规则的Action列表;
  • Action过滤层根据一定策略过滤有效Action列表,过滤策略包括黑/白名单,灰度、人群和疲劳度策略;
  • Action下发层会根据策略配置执行,可以是通用的触达,比如发push、短信;也可以是调用其他业务系统,比如调用安全系统处罚;也可以将Action下发到端上执行;
  • Action执行后将相关信息按照通用协议埋点,方便后续数据统计;

用户触达是omega系统流程的最后一环,需要封装足够多的通用触达能力,保证触达的实时性、有效性,不然对用户体验会有伤害,接下来通过详细设计看下用户触达系统如何保证触达策略可组装、可插拔的灵活配置和触达实时性等特性。

2.3、详细设计

undefined

注:metaq是阿里内部使用的MQ框架;HSF是RPC框架。

用户触达中心的目标是可以单独提供服务,支持灵活可插拔配置和策略精准触达,所以在设计上着重减少对外部依赖,对外通过MQ方式减少对外部系统直接依赖和耦合;对内明确各子模块的功能边界,通过配置化方式组合子模块。

用户触达中心的主要作用是维护触达策略和封装标准触达能力,整体分为以下部分:

  • 输入数据源:用户触达中心可以接收上层规则中心计算结果,也可以由外部业务系统主动触发;
  • 触达物料包括文案、图片等维护在云投放系统(闲鱼素材管理系统),后续会接入离线数据补充更细粒度的基础信息,包括用户画像、商品数据等。
  • Action路由层维护Action与规则之间的订阅关系,包括订阅的有效时间、优先级等要素;
  • Action过滤层采用责任链模式设计,各filter相互独立,可动态插拔和灵活配置;
  • Action实现层封装了各种通用触达能力实现,目前主要是云端和客户端两种,后续可通过faas模式提供Action灵活快速上线能力。为了保证在客户端执行Action的实时性,我们专门维护了与客户端的长连通道,通过针对性优化,提升通道的数据传输速度和到达率,对端上触达进行了重点保证。
  • Action触达后会按照统一埋点协议记录,后续会整理埋点上报和数据开发流程,减少数据开发成本,方便业务方查看Action实验效果和实验归因。

线上效果

用户触达中心上线后已经通过配置化方式承接多个业务,包括闲鱼金鳞双十一玩法、用户增长、租房、租赁等多个业务场景,通过运营灵活配置策略和权益的实时精准触达,拿到以下数据结果:
对目标人群触达准确率大幅提升;

金鳞玩法延迟在1s内;

授人以鱼不如授人以渔,提供运营工具,彻底解放开发资源;

其中双十一项目对实时性要求高而且QPS比较高,对Omega系统尤其是用户触达中心的性能和实时触达能力进行充分验证。最终浏览商品降价场景Push点击率较离线有大幅提升。

总结展望

Omega系统是针对实时性要求高、运营主导、快速实验这类场景解法的高度抽象。秉承这个理念,用户触达中心封装多种通用触达能力,支持灵活可插拔的filter配置和设计标准埋点协议以支持业务快速实验和数据归因分析。后续我们将支持离线画像数据标准接入和数据回流分析标准化,打通业务上下游数据,在功能上实现流程闭环。也欢迎读者交流讨论。

相关文章
|
SQL 消息中间件 缓存
库存扣减问题
库存扣减问题
库存扣减问题
|
存储 监控 安全
使用VMware Workstation搭建先电IaaS云平台(v2.2版本)(上)
使用VMware Workstation搭建先电IaaS云平台(v2.2版本)
838 0
使用VMware Workstation搭建先电IaaS云平台(v2.2版本)(上)
|
10月前
|
机器学习/深度学习 人工智能 前端开发
FacePoke:开源AI实时面部编辑神器!拖拽调整表情/头部朝向,4K画质一键生成
FacePoke是一款基于AI技术的开源实时面部编辑工具,支持通过拖拽操作调整头部朝向和面部表情,适用于多种场景。
724 0
|
自然语言处理 分布式计算 算法
通过OpenSearch向量检索版进行混合检索的最佳实践
本文介绍如何通过OpenSearch向量检索版,使用稀疏-稠密向量进行混合检索,获得更好的搜索效果。
2017 0
|
缓存 前端开发 JavaScript
2023年最新前端面试题汇总大全二(含答案超详细,Vue,TypeScript,React,微信小程序,Webpack 汇总篇)-- 持续更新 5
2023年最新前端面试题汇总大全二(含答案超详细,Vue,TypeScript,React,微信小程序,Webpack 汇总篇)-- 持续更新
359 1
|
存储 运维 安全
如何做好统一身份认证账号管理及集成
传统统一身份认证系统的建设存在众多的问题,使设计实现复杂化,管理复杂化,集成复杂化。我们今天将详细讨论下统一身份认证账号设计的几个相关问题
3094 1
如何做好统一身份认证账号管理及集成
|
存储 算法 Java
【内存】Android C/C++ 内存泄漏分析 unreachable
【内存】Android C/C++ 内存泄漏分析 unreachable
1165 0
|
BI 数据库
数据库:SQLServer 实现行转列、列转行用法笔记
官方解释:可以使用 PIVOT 和 UNPIVOT 关系运算符将表值表达式更改为另一个表。PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合。UNPIVOT 与 PIVOT 执行相反的操作,将表值表达式的列转换为列值。
数据库:SQLServer 实现行转列、列转行用法笔记
|
机器学习/深度学习 算法 数据可视化
闲鱼触达平台的大杀器-HermesX
基于用户+基于行业+免打扰
564 0
闲鱼触达平台的大杀器-HermesX
|
存储 分布式计算 搜索推荐

热门文章

最新文章