目前很多人對(duì)三級(jí)頁面的質(zhì)量分因子不是很了解,不知道有多少個(gè)權(quán)重,特此京濤老師從京東三級(jí)列表頁架構(gòu)師那獲悉到京東三級(jí)類目權(quán)重架構(gòu)開發(fā)工作。京東分類頁面的入口
分類列表入口,可以通過京東首頁首屏左側(cè)導(dǎo)航進(jìn)入,是用戶購買商品的幾大入口之一。
分類列表,展示各個(gè)分類的商品,有綜合排序、價(jià)格排序、銷量排序、上架時(shí)間排序、圖書還有出版時(shí)間排序。可以按照品牌、價(jià)格和各種擴(kuò)展屬性篩選出想要的商品。下圖以空調(diào)列表為例。
分類列表特點(diǎn)
-- 分類多,全站大概幾千個(gè)分類;
-- 商品多,每個(gè)分類商品多,有的分類能達(dá)到上千萬的商品;
-- 需求多樣化,不同分類需求不一樣,例如大家電、圖書需求各不一樣;
-- 請求量大,實(shí)時(shí)性要求高。
京東分類升級(jí)新架構(gòu)權(quán)重
新架構(gòu)設(shè)計(jì)目標(biāo)
-- 分布式,數(shù)據(jù)可以做多個(gè)分片,服務(wù)各層可以做到水平擴(kuò)容;
-- 高可用,雙機(jī)房雙活部署;
-- 響應(yīng)迅速;
-- 數(shù)據(jù)閉環(huán),線上服務(wù)主要數(shù)據(jù)不依賴于外部API;
-- 運(yùn)維便捷,方便切換集群,方便分類管理配置;
-- 數(shù)據(jù)提升,通過優(yōu)化排序算法,提升GMV、訂單轉(zhuǎn)化率、客單價(jià)等。
新架構(gòu)功能模塊如上圖所示:
-- 頁面渲染:采用OpenResty(Nginx+Lua)來作模板渲染,方便頁面邏輯的調(diào)整;
-- 業(yè)務(wù)處理:采用golang,所有的篩選、過濾邏輯都是在這一層處理的;
-- 數(shù)據(jù)異構(gòu):頁面渲染需要相關(guān)的數(shù)據(jù)、過濾篩選需要的數(shù)據(jù),都是通過異構(gòu)過來的;
-- 消息處理:通過接入MQ消息,可以實(shí)時(shí)處理商品上下架、庫存更新、價(jià)格修改等消息;
-- 質(zhì)量分計(jì)算:通過大數(shù)據(jù)平臺(tái)計(jì)算商品質(zhì)量分,為綜合排序提供依據(jù);
-- 配置管理中心:負(fù)責(zé)后臺(tái)調(diào)度、分類配置等。
新架構(gòu)功能模塊上線情況
新架構(gòu)離線數(shù)據(jù)流程如下圖
其中:
-- 數(shù)據(jù)集市,使用的是京東的大數(shù)據(jù)平臺(tái);
-- JSS,是京東自研分布式文件存儲(chǔ)系統(tǒng);
-- JIMDB,是京東自研KV存儲(chǔ)系統(tǒng),可當(dāng)分布式Redis使用。
詳解各個(gè)模塊的權(quán)重
* 質(zhì)量分計(jì)算
由于每個(gè)分類的商品非常多,個(gè)別分類達(dá)千萬量級(jí)的SKU,而用戶瀏覽的SKU有限,我們需要將用戶最可能買的商品排在前面;為每個(gè)分類的所有sku進(jìn)行質(zhì)量分計(jì)算,涉及到幾十個(gè)指標(biāo)(包括銷量、評(píng)價(jià)、瀏覽、轉(zhuǎn)化率等);根據(jù)質(zhì)量分的高低進(jìn)行排序;由于涉及數(shù)據(jù)量很大,所有計(jì)算都在大數(shù)據(jù)平臺(tái)完成;將計(jì)算結(jié)果推送到JSS。
由于還有一些特殊規(guī)則,例如品牌穿插、店鋪穿插、特殊排序等,這些規(guī)則的實(shí)現(xiàn)是通過worker實(shí)現(xiàn),讀取jss,并進(jìn)行特殊規(guī)則處理。將處理后的數(shù)據(jù)推送到MYSQL。
* 異構(gòu)服務(wù)
異構(gòu)服務(wù)主要是異構(gòu)過濾和展示需要的商品數(shù)據(jù);調(diào)用外部各個(gè)接口,形成一張商品寬表。如下圖所示:
業(yè)務(wù)處理子系統(tǒng)介紹
上圖展示了列表各種篩選邏輯,排序邏輯。
業(yè)務(wù)處理子系統(tǒng)提供前端所需要的所有過濾篩選接口,以及展示數(shù)據(jù)。該系統(tǒng)采用golang開發(fā),所有篩選數(shù)據(jù)都存在內(nèi)存中,提高檢索速度;展示的數(shù)據(jù)都放在jimdb中,目的減少占用內(nèi)存大小,縮短golang的GC時(shí)間。下圖展示了內(nèi)存中存儲(chǔ)的數(shù)據(jù)。
* 消息處理系統(tǒng)
該系統(tǒng)接收處理相關(guān)消息(商品變更,上下架,價(jià)格變更,庫存變更),并實(shí)時(shí)更新到線上,如下圖所示:
更多干貨內(nèi)容分享盡在京濤老師QQ:207331567分享!