上一篇文章《【推荐架构day2】微博怎么给你推荐信息的:背后基本原理》介绍了推荐产品,给大家有一个初步的认识:微博推荐的目标和使命、推荐产品有哪些以及推荐的分类角度。本文将会给大家描述当前微博推荐的体系结构。
任何不拿出干货的技术文档都是耍流氓,首先上体系结构图,如图所示,在整体体系结构上,微博推荐可以被划分为4层:前端展现层、应用层、计算层以及数据层,其中我们把数据日志、统计、监控以及评估也都分在数据层。接下来我会逐一介绍他们的目的,作用、技术与发展。更为细致的描述应该会在以后的博客中体现。
1、推荐前端RFront
RFront主要目的是展现以及渲染微博内容,由于当前微博推荐在web以及客户端都有相对应的产品,展现差异较大,但数据和方法却是通用的。那么,需要有这么易于维护、拥抱变化的一层高效地响应产品需求。当然在微博推荐实际业务中,由于产品形态的多样以及策略的负责性,RFront做了不少工作以及相关的应用技术很多,在接下来的文章中会有相关的同学着重介绍这一块工作。
2、推荐应用RApp
RApp主要目的是为前端提供候选以及起到部分排序功能。该层利用通用框架【nginx + lua 以及apache + python两个版本】提供应用接口服务。这些应用包括:内容、用户、服务、feed推荐频次以及辅助功能。
在这里有一个工具叫做通用推荐框架(CRF, common recommon framework),它主要的作用是:融合推荐资源、规范推荐应用接口以及统一工作流。早期版本使用的是apache+mod_python的形式,后来在RApp的定位上,认为它是一个数据通路,同时需要获取各种协议的数据内容,因而将其扩展到nginx + lua的版本。
CRF是一个二次开发框架