闲鱼技术的整体技术架构及设计理念有哪些?
署名2021-01-06

闲鱼技术的整体技术架构及设计理念有哪些?Hermes的设计理念是将系统分为三部分,不同的组件实现不同的需求:合理的选择发送时机(When)通过任务中心完成。不同场景选择不同的用户(Who)通过配置中心完成。发送用户最感兴趣的内容(What)通过匹配中心完成。接下来小编带领大家来了解一下闲鱼技术Hermes的整体技术架构。  

我们可以从架构图中看出,配置中心负责维护平台核心的数据模型,提供任务和素材的内容给匹配中心和任务中心;任务中心负责触达的时机选择和实际的触达计划,保证系统稳定性;匹配中心负责素材场景择优,疲劳度控制以及实验。  

一、Hermes在push整体触达链路上的不同类型:  

(1)个性化触发:  

通过洞察用户感兴趣的内容,有针对性的帮助闲鱼用户发现价值。举例来说,通过算法,找到用户最容易接受消息推送的时段(某用户A喜欢在上午吃完早餐后打开手机),推送用户感兴趣的消息内容(用户A最近喜欢浏览一些数码产品),帮助他们更好的通过闲鱼满足个人需求(闲鱼将最近有关数码产品的一些促销活动推送给用户A,用户A找到了一个好deal,很开心)  

(2)实时触发:  

通过洞察用户使用闲鱼的实时行为,更好的帮助用户实现个人需求,比如用户浏览了某个商品x,如果商品x降价了,我们会通过消息推送告知用户曾经浏览过的商品降价了,这样用户就可以用更便宜的价格买到喜欢的商品。类似的还有关注卖家上新等场景。在触达方式上,我们有push、短信、popLayer等不同的触达方式,针对每种方式的特点,优化用户接收消息的体验。  

二、系统是如何通过各部分的配合实现上述链路的:  

(1)配置中心:  

配置中心是Hermes敏捷的重要一环,如何快速的发掘用户感兴趣的内容,快速的配置,快速的上线是影响用户体验的重要因素。  

首先需要明白配置中心的三个核心角色,任务、人群和素材。运营可以通过平台配置不同的活动(就是任务),每个活动都可以创建多个素材,素材支持千人千面(个性化内容),运营同学针对各自负责的活动,圈选对应的人群(奥格用户增长平台【1】),所以任务和素材是一对多的关系,任务和人群是一对一的关系。  

Hermes的配置中心对任务和素材进行分开管理,系统会把任务按照触达目的进行分类,任务关联素材。明确的分类管理,对运营同学管理当前的营销活动,活动目的以及触达形式一目了然,任务素材审核机制保证了推送给用户的活动质量,数据大盘的报表便于后期做数据分析,更好的了解用户对发送内容的反馈。  

(2)如何发掘用户个性化的内容呢?  

每个业务场景都会根据不同用户的历史行为产出一张个性化ODPS表,这里面算法会根据不同用户的特点产出不同的内容。此外,时效性也非常关键,计算出来的个性化内容如果几天后才发给用户,可能用户已经不感兴趣或者有新的关注点,如何快速同步产出的结果来及时发送给用户呢?  

在数据流转的设计架构中,配置中心的任务素材内容我们存储在mysql和ODPS(阿里海量数据离线处理平台)中,通过离线同步和实时同步两种方式输入到匹配中心(算法中心):任务素材的配置信息存储在mysql中,离线通过ODPS同步机制,实时通过监听binlog机制,同步发送MQ消息给匹配中心。  

素材千人千面的内容我们存储在ODPS表中,离线同步我们采用了ODPS同步机制,实时同步我们利用Blink(阿里海量数据实时流计算平台)来完成,具体的方式通过Blink监听ODPS表的内容变更,然后将内容同步到匹配中心对应的数据存储中(IGraph数据库,下文会有介绍)。通过实时的数据同步,我们可以做到内容快速配置上线,这也体现了Hermes的敏捷。结合个性化内容的生成,我们可以给匹配中心提供充足的素材供匹配中心找寻用户最感兴趣的内容,发掘用户的兴趣点。  

(3)任务中心:  

任务中心主要负责触达时机的确定,用户校验,计算任务素材匹配列表,调用匹配中心来判定是否对用户进行触达,业务校验,数据埋点,消息触达,整体链路如下图:  

在触达时机上,根据不同类型的消息特点,我们把触达时机分为两类:个性化触发是算法通过离线T-1日算出每个用户最有可能接受触达的时间(个性化时间),产生一张ODPS表,任务中心通过SchedulerX(阿里分布式调度系统)调度这张个性化时间表,查找符合条件的用户列表,将用户列表封装为消息发送(MetaQ,阿里自研分布式消息队列),接收到消息的服务针对每个用户,进行上述的链路传递。  

实时触发是通过端智能的用户行为采集,上报,根据用户目前所在的场景,挑选适合该场景的信息发送给用户。这其中,感知用户行为和决策下发是Omega系统实现的,Hermes通过与Omega系统配合,获得触发时机以及对应场景。  

匹配中心来自阿里算法平台TPP,结合配置中心准备好的个性化内容信息,算法小姐姐会根据场景建模,根据用户的历史数据,实时行为进行模型训练,对素材进行预估打分,匹配召回,素材之间的AB实验和赛马,最终决定哪个素材以及内容是最适合用户的。