点餐网站模板 手机端,在手机上做游戏的软件,百度站内搜索,seo搜论坛阿里妹导读#xff1a;IFTTT是一个被称为 “网络自动化神器” 的创新型互联网服务理念#xff0c;它既实用#xff0c;概念又简单#xff0c;可以通过标准化协议满足用户的强需求#xff0c;让各种互联网产品为用户服务#xff0c;2010年刚推出#xff0c;就拥有了极高的… 阿里妹导读IFTTT是一个被称为 “网络自动化神器” 的创新型互联网服务理念它既实用概念又简单可以通过标准化协议满足用户的强需求让各种互联网产品为用户服务2010年刚推出就拥有了极高的热度。闲鱼 IFTTT 是基于闲鱼的业务场景与 IFTTT 理念结合后产生的上线以来它提供了买卖双方实时双向互动能力平均每天处理关系数据数亿条点击率翻倍给团队注入了新能量。今天就由闲鱼技术的工程师剑辛为大家揭晓这个系统。 面临问题
在闲鱼生态里用户之间会有很多种关系。其中大部分关系是由买家触发联系到卖家比如买家通过搜索、收藏、聊天等动作与卖家产生联系另外一部分是平台与用户之间的关系。对这些关系分析之后我们发现这些关系中存在两个问题
用户产生关系的层次不够丰富现有系统只维护了一部分用户关系包括收藏、点赞等用户关系的层次还不够丰富。用户之间关系是单向且不够实时在现有的玩法中买家可以通过多种行为与卖家产生联系但卖家不能主动与买家发生关系和互动而且平台计算的关系都是离线的对用户的吸引力不足。
上面提到的场景经过抽象归纳之后都是同一个范式当某个条件被满足之后就会触发相对应的动作。这个范式是 IFTTT 的基本理念而闲鱼 IFTTT 就是对这些问题的解决方案。
IFTTT概念
IFTTT是一个被称为 “网络自动化神器” 的创新型互联网服务理念它很实用而且概念很简单。IFTTT全称是 If this then that 意思是如果满足“this”条件则触发执行“that”动作。IFTTT由三部分构成分别为Trigger、Action和Recipe。 可以看出 IFTTT 本身概念并不复杂它的真正魔力在于“由简单组成的复杂”也就是由众多简单的 IFTTT 流程相互衔接成跨越整个互联网、跨越多平台、跨越多设备的状态机。
闲鱼 IFTTT 是基于闲鱼的业务场景与 IFTTT 理念结合后产生的提供 IFTTT 标准协议封装对业务无侵入可扩展的服务编排系统。 闲鱼 IFTTT 的两个特性对应上述两个问题分别是
多维用户关系感知
多维指的是覆盖面闲鱼 IFTTT 通过更多维度的挖掘抽象并维护了更丰富的用户关系。基于用户关系数据我们可以产出用户画像并通过更有效的方式触达用户。
实时用户双向互动
闲鱼 IFTTT 底层具有对用户关系大数据的高效存储和处理能力以支持上层业务中用户关系实时处理闲鱼 IFTTT 不仅支持买家到卖家关系而且通过设计天生支持卖家到买家关系。
闲鱼 IFTTT 把之前平台与用户的互动、买家到卖家的联系切换称闲鱼用户之间天然的关系互动对用户骚扰更少且激活拉回的效果更好我们基于这个场景设计闲鱼 IFTTT 的技术方案。
技术方案 先按照 IFTTT 规范对业务进行建模分为Channel、Trigger和Action层其中 Channel 层是数据底层将 Trigger 和 Action 关联后组成标准Recipe。
Channel Channel层在闲鱼 IFTTT 的作用是保存和管理用户关系数据Channel层定义了用户关系的元数据结构包括关系类型、源账户和目标账户。Channel层是闲鱼 IFTTT 的基石Trigger和Action均基于用户关系数据进一步抽象业务逻辑。Trigger Trigger是业务上自定义的触发事件与业务息息相关可能是关注的人上新、浏览宝贝降价或者是参加的百币夺宝活动开奖等。当 Trigger 触发后闲鱼 IFTTT 会根据 Trigger 类型和配置的关系类型计算用户名单并调用Action层进行处理。Action Action层处理对象是Trigger触发后计算的用户名单可以给名单里的用户发Push发权益或者其他定制逻辑。Action本身是标准化、可插拔的组件业务上可以利用 Action 组件对用户名单做AB测试快速实验不同 Action 策略。
接下来我们说一下闲鱼 IFTTT 详细技术方案方案如下 整体技术方案按照业务建模的结构图细化补充依赖的技术组件。整体流程不再细述针对流程中重点模块详细说明。
场景快速接入
设计场景快速接入的目的是让业务对接入闲鱼 IFTTT 无感知因为在最开始的设计中场景接入是准备通过在业务逻辑里增加AOP切面将业务数据和场景上报。但因为这种方式对业务本身有一定侵入增加业务执行的RT而且不够灵活最终被否决。
而现在的场景快速接入方案解决了这些问题通过SLS接入所有应用的海量网络请求日志记录请求的URL、参数和响应将 SLS 作为 Blink 流计算任务的数据源根据 diamond 动态下发的规则实时筛选网络请求URL和参数把数据按照指定格式组装后上报给 Channel 层。
场景快速接入方案将业务逻辑与场景接入解耦支持快速接入灵活变更且延迟低是针对大数据场景接入的高性能解决方案。
计算用户名单
计算用户名单模块采用责任链模式设计因为在不同 Trigger 场景中业务对用户名单的计算和筛选逻辑都是不同的。通过责任链模式将主流程与业务筛选逻辑解耦并支持各业务灵活定制筛选逻辑互不干扰。
PushAction
Action层是闲鱼 IFTTT 中最重要的一环会直接触达到用户Action的逻辑会直接影响用户对平台的直观感受和活跃率。消息 Push 是 Action 中最常见的逻辑更要防止用户被骚扰PushAction逻辑如下
敏感人群过滤疲劳度校验对发送人群进行AB实验组装消息将Action各节点日志同步到SLS方便检索和排查问题统计消息发送数据及点击数据为业务后续决策提供依据
其中疲劳度是防止用户被骚扰的关键我们针对疲劳度进行了分层设计分为三层第一层为用户级别疲劳度控制一个用户在一个周期内收到消息数量第二层是业务维度控制用户在一个周期内收到某个业务的消息数量第三层是目标级别控制用户在一个周期内收到同一个发送者消息数量。
在业务维度层面支持灵活控制多个业务联合疲劳度保证用户不会被消息过度骚扰。 用户关系存储
用户关系数据是闲鱼 IFTTT 的基石它的特点是存储量级大达到TB级别而且对存储和查询的性能要求高TPS和QPS的峰值都在一万以上。经过调研我们发现集团内部开发的 Lindorm 可以满足需求。
Lindorm是阿里内部基于 Hbase 自研的高性能KV存储数据库对Hbase的性能和稳定性均有一定优化。闲鱼 IFTTT 采用 Lindorm 作为用户关系数据存储经性能测试验证数据读取 QPS 达到7万数据存储TPS在10万以上。Lindorm本身性能优异为闲鱼IFTTT高性能奠定基础。
效果
闲鱼IFTTT自上线以来已支持关注上新、浏览宝贝降价和租房小区上新等多个业务场景提供买卖双方实时双向互动能力平均每天处理关系数据数亿条处理Trigger量达到上千万处理 Action 量达到亿级别消息点击率较离线push提高1倍以上。
闲鱼 IFTTT 目前支持的是用户互动场景后续我们将结合闲鱼自身业务特点对 IFTTT 进行更高维度抽象封装标准 Recipe 接口将闲鱼IFTTT打造成提供流程编排、管理能力的服务平台。
在我看来IFTTT从2010年推出以来在国外有很大的热度在互联网和物联网领域都有专门的公司和团队在研发IFTTT的概念虽然简单却通过标准化协议满足用户的强需求——让各种互联网产品为用户服务。这其实也给我们互联网从业者一些思考在新机遇面前究竟是快速投入比较重要还是抽象标准协议解决一类问题更加有效
抢阿里云新用户专属优惠权益致电95187-1
原文链接 本文为云栖社区原创内容未经允许不得转载。
相关文章: