京东分类页面的入口
分类列表入口,可以通过京东首页首屏左侧导航进入,是用户购买商品的几大入口之一。
分类列表,展示各个分类的商品,有综合排序、价格排序、销量排序、上架时间排序、图书还有出版时间排序。可以按照品牌、价格和各种扩展属性筛选出想要的商品。下图以空调列表为例。
分类列表特点
-- 分类多,全站大概几千个分类;
-- 商品多,每个分类商品多,有的分类达上千万的商品;
-- 需求多样化,不同分类需求不一样,例如大家电、图书需求各不一样;
-- 请求量大,实时性要求高。
京东分类升级新架构权重
新架构设计目标
-- 分布式,数据可以做多个分片,服务各层可以做到水平扩容;
-- 高可用,双机房双活部署;
-- 响应迅速;
-- 数据闭环,线上服务主要数据不依赖于外部API;
-- 运维便捷,方便切换集群,方便分类管理配置;
-- 数据提升,通过优化排序算法,提升GMV、订单转化率、客单价等。
新架构功能模块如上图所示:
-- 页面渲染:采用OpenResty(Nginx+Lua)来作模板渲染,方便页面逻辑的调整;
-- 业务处理:采用golang,所有的筛选、过滤逻辑都是在这一层处理的;
-- 数据异构:页面渲染需要相关的数据、过滤筛选需要的数据,都是通过异构过来的;
-- 消息处理:通过接入MQ消息,可以实时处理商品上下架、库存更新、价格修改等消息;
-- 质量分计算:通过大数据平台计算商品质量分,为综合排序提供依据;
-- 配置管理中心:负责后台调度、分类配置等。
新架构功能模块上线情况
新架构离线数据流程如下图
其中:
-- 数据集市,使用的是京东的大数据平台;
-- JSS,是京东自研分布式文件存储系统;
-- JIMDB,是京东自研KV存储系统,可当分布式Redis使用。
详解各个模块的权重
* 质量分计算
由于每个分类的商品非常多,个别分类达千万量级的SKU,而用户浏览的SKU有限,我们需要将用户最可能买商品排在前面;为每个分类的所有sku进行质量分计算,涉及到几十个指标(包括销量、评价、浏览、转化率等);根据质量分的高低进行排序;由于涉及数据量很大,所有计算都在大数据平台完成;将计算结果推送到JSS。
由于还有一些特殊规则,例如品牌穿插、店铺穿插、特殊排序等,这些规则的实现是通过worker实现,读取jss,并进行特殊规则处理。将处理后的数据推送到MYSQL。
*异构服务
异构服务主要是异构过滤和展示需要的商品数据;调用外部各个接口,形成一张商品宽表。如下图所示:
业务处理子系统介绍
上图展示了列表各种筛选逻辑,排序逻辑。
业务处理子系统提供前端所需要的所有过滤筛选接口,以及展示数据。该系统采用golang开发,所有筛选数据都存在内存中,提高检索速度;展示的数据都放在jimdb中,目的减少占用内存大小,缩短golang的GC时间。下图展示了内存中存储的数据。
*消息处理系统
该系统接收处理相关消息(商品变更,上下架,价格变更,库存变更),并实时更新到线上,如下图所示:
作者:搜索书生,擅长领域:京东搜索规则,案例与实操,微信号:13021139730(备注:卖家网)
原创稿件,转载请注明来源卖家资讯http://www.maijiaw.com/news/
本文"京东三级类目如何进行排序?"为卖家资讯原创稿件,转载请注明出处(本文转载于:卖家资讯http://www.maijiaw.com/news/article/242399)