导读:短视频在如今已经是非常重要的内容载体,在短视频播放时如给予用户进行如相关视频、商品、游戏、活动等优质内容的推荐,不仅能提升用户的使用粘性,也能极大的丰富内容的生态,本文会详细介绍在短视频APP相关页面做内容推荐入口位置的设计实践。
全文3608字,预计阅读时间10分钟
搜索行为的用户通常较为明确自己的需求和问题,技术的重心是针对问题返回准确的答案。推荐产品则反之,用户消遣时间是主要的目的,技术的重心是帮助用户挖掘潜在需求,需要通过与用户的交互逐步了解用户的喜好,给予用户提供相应的内容、服务等。如果说用户观看完当前视频再次请求,我们给予推荐新的视频主要是基于用户纬度进行内容推荐,那在当前视频播放时我们在本页面及时推荐一些内容服务就是细化到用户+视频维度,这就是短视频相关资源推荐位的意义和价值。
降级是服务的自我保护机制,为了整体不被拉跨,放弃部分服务的可用性,丢车保帅。
因非核心任务被降级处理,从用户角度来看,现象就是可能服务变的不可访问,或者数据过期,因此一定上程度降低了用户体验。
限流:从一定程度上来说,大流量是增加服务器压力的万恶之源,短时间内的高并发,服务器会启用大量线程池,CPU切换压力增大,如果线程池达到上限,更多请求会阻塞在内存空间,各服务接口都会受影响。如果同步访问数据库,或远程服务,磁盘读写性能和网络延迟会成为性能瓶颈,影响TPS,加上高并发请求,服务器容易宕机。
熔断
降级开关
设置熔断开关,如调用服务可用性低于设定阈值,直接熔断断开调用,直至后续多时间片监测确认服务恢复。
制定性能分发权重,可用性较差、平均响应时长较长的服务降低其分发权重。
物料和视频或者用户强相关
平响要低,不能影响自己的核心业务。
稳定性要高,可用性不能低于99.9%。
要求和某些视频绑定需要稳定下发的
要求高优下发的
需要实时请求下游服务进行计算的
用户都是就近请求服务,通常非机房级别故障,不会产生跨机房请求
绝大部分的内容是我们推荐给用户,用户对于大部分内容的一致性的要求没有那么高。
根据业务数据特点和分发侧需求我们可以选取key value型存储,变更性能好。
根据业务进行分类和用户使用特征,我们对不同地区之间的数据一致性要求不高,在不考虑降级策略以及抛却一些需要实时请求的下游业务情况下,如果想通过平台进行性能优化,那变动不是很频繁的业务我们只能尽可能的让他们把数据存到我们这里统一管理,增加一些本地缓存作为二级缓存来进一步提高可用性。
条件繁杂:资源位已接入数以十计的业务且持续增加,每种业务都涉及业务数据的组装,分发端、版本、位置的控制,各种小流量实验的加入等需求,重复性工作较多,且质量把控成本高。
业务变更频繁:日常迭代中经常收到诸如某业务跳转地址更、物料信息、小流量实验号、业务优先级、下发版本的变更需求,经常面临开发五分钟,上线几小时。
业务逐渐复杂:随着业务的大量接入,每次上线的回归测试将变得成本越来越高,各种业务的监控维护也越来越复杂。
case咨询:pm或者用户咨询不符合其预期下发的原因,研发需要查看代码核对逻辑复现线上,成本高昂。
业务规则抽象化:业务代码进行规则抽象,支持规则组合、插拔和热更新。
业务上线配置化:老业务变更和新业务接入通过已有规则和新增规则配置化完成上线。
业务回归测试监控自动化:通过建立自动化监控及回归测试机制来降低业务复杂带来的成本。
业务流程可见性:当业务遇到不清楚的问题时,可以非常清晰的发现是哪个环节导致。
规则的核心为两个部分:
规则之间的关系:
流量行为录制,通过服务标准化日志打印输出,统一用户请求行为日志,将日志收集至录制平台,对日志进行清洗、分类、聚合,构建核心功能回归路径、用户请求路径,完成用户行为和核心功能的请求录制。
流量行为回放,通过录制的流量行为构建对服务进行请求,拿到请求的结果与录制时的结果对比,输出报表,完成报告分析报告。