一張京東618訂單的奇妙之旅
適逢“買買買”的京東618大促,大家一定對(duì)這幅圖相當(dāng)熟悉。

其實(shí)這張圖片中展示的只是從提交訂單,到收到商品全過(guò)程上百個(gè)片段中的小小縮影。今天,京技院在618指揮中心,帶你完整走一通從網(wǎng)上提交訂單到收到包裹的奇妙之旅。Come on,F(xiàn)ollow me!毫秒級(jí)完成的個(gè)性化推薦與搜索
你是否已發(fā)現(xiàn),不同的用戶打開(kāi)京東主頁(yè)所看到的商品是不完全一樣的,這是京東憑借強(qiáng)大的大數(shù)據(jù)實(shí)現(xiàn)的個(gè)性化推薦。
后臺(tái)系統(tǒng)通過(guò)分析上億件商品的價(jià)格、評(píng)價(jià)等信息,再結(jié)合您所有的瀏覽記錄、購(gòu)買偏好等數(shù)據(jù),綜合分析出您可能需要的商品,并***時(shí)間在你的首頁(yè)體現(xiàn)。
完全實(shí)現(xiàn)了針對(duì)你的個(gè)性化推薦,這所有的數(shù)據(jù)分析和商品篩選都在毫秒級(jí)時(shí)間內(nèi)完成。當(dāng)你輸入商品的關(guān)鍵詞,搜索系統(tǒng)首先會(huì)進(jìn)行意圖分析,同時(shí),在線部分會(huì)調(diào)用用戶畫(huà)像系統(tǒng)獲得您的個(gè)性化特征。
為了快速而準(zhǔn)確的返回搜索結(jié)果,搜索背后依托的大數(shù)據(jù)平臺(tái),上千臺(tái)服務(wù)器開(kāi)始做排序特征挖掘、全量索引、實(shí)時(shí)價(jià)格庫(kù)存更新等運(yùn)算工作,最終通過(guò)結(jié)果頁(yè)呈現(xiàn)。這一過(guò)程中大量的數(shù)據(jù)在服務(wù)器間流轉(zhuǎn),但所用時(shí)間仍然在毫秒級(jí)。提交訂單后,生產(chǎn)訂單前在京東,每次提交訂單會(huì)要求控制在100ms以內(nèi)完成。在如此快速的響應(yīng)時(shí)間內(nèi),后臺(tái)系統(tǒng)將經(jīng)歷非常復(fù)雜的業(yè)務(wù)邏輯:
- 用戶身份檢查
- 庫(kù)存狀態(tài)校驗(yàn)
- 庫(kù)存預(yù)占
- 支付密碼校驗(yàn)
- 京豆、余額、優(yōu)惠券查詢
- 生成訂單號(hào)
- 更新購(gòu)物車
- 保存訂單
……
用戶每一個(gè)提交訂單的動(dòng)作,對(duì)于京東系統(tǒng)來(lái)說(shuō),都是一條***的指令。完成訂單提交這個(gè)動(dòng)作的過(guò)程中,多達(dá)上百個(gè)系統(tǒng)正在準(zhǔn)確而高速的運(yùn)轉(zhuǎn)著。
包括交易引擎會(huì)根據(jù)指令,安排訂單流轉(zhuǎn)的行程并通知訂單中心(您可以在訂單中心隨時(shí)查看整個(gè)生產(chǎn)過(guò)程)、財(cái)務(wù)中心(需要準(zhǔn)備多少錢)、倉(cāng)儲(chǔ)中心(由哪個(gè)庫(kù)房生產(chǎn)等),保證您的訂單有條不紊的進(jìn)入后續(xù)的生產(chǎn)流程中,這個(gè)過(guò)程需要300毫秒。訂單的履約生產(chǎn)過(guò)程
訂單成功提交后即進(jìn)入履約階段,訂單履約中心(OFC)專門提供訂單生成后的履約工作,確保實(shí)物流轉(zhuǎn)和訂單信息的秒級(jí)精準(zhǔn)同步。OFC將完成:過(guò)濾存在風(fēng)險(xiǎn)的訂單、生產(chǎn)信息準(zhǔn)備、生產(chǎn)計(jì)劃的制定等工作,***把滿足生產(chǎn)條件的訂單傳遞到庫(kù)房進(jìn)行物流生產(chǎn)。
同時(shí)還肩負(fù)著將下游系統(tǒng)主數(shù)據(jù)、訂單處理狀態(tài)回傳給訂單中心、庫(kù)存中心的任務(wù),是客戶訂單業(yè)務(wù)最核心的后臺(tái)支撐系統(tǒng)。
當(dāng)訂單生成后,還會(huì)有一系列動(dòng)作,那就是做訂單的拆分、時(shí)效計(jì)算、轉(zhuǎn)移、預(yù)分揀、發(fā)票數(shù)據(jù)準(zhǔn)備、面單數(shù)據(jù)準(zhǔn)備等一系列步驟。因?yàn)樵谟唵沃械纳唐罚热珉娔X、圖書(shū)、日常用品等,他們是存放在不同倉(cāng)庫(kù)里的。這就需要將一個(gè)大訂單拆分成多個(gè)小訂單進(jìn)行生產(chǎn),這就是訂單拆分。系統(tǒng)會(huì)根據(jù)用戶購(gòu)買商品的種類、大小、有無(wú)現(xiàn)貨、距離遠(yuǎn)近等,綜合計(jì)算出一個(gè)***方案,依此對(duì)訂單進(jìn)行拆分。同時(shí)將下單時(shí)使用的優(yōu)惠券、京豆、禮品卡等,合理的分?jǐn)傇诿總€(gè)拆分后的新訂單上,包括根據(jù)不同商品品類對(duì)應(yīng)不同工商稅務(wù)要求,發(fā)出電子發(fā)票的任務(wù)。
訂單拆分完成后,OFC會(huì)調(diào)用訂單時(shí)效模塊,邏輯上會(huì)考慮生產(chǎn)時(shí)效、生產(chǎn)成本、庫(kù)存、客戶體驗(yàn)等多個(gè)因素,給出一個(gè)優(yōu)化的方案。之后,OFC會(huì)調(diào)用青龍系統(tǒng)的預(yù)分揀模塊,通過(guò)匹配用戶填寫收貨地址和配送站點(diǎn),并考慮生產(chǎn)能力和負(fù)載情況,分配***的配送站點(diǎn)。然后調(diào)用訂單時(shí)效模塊,修正訂單可到達(dá)客戶的時(shí)間;調(diào)用發(fā)票模塊準(zhǔn)備好發(fā)票數(shù)據(jù);調(diào)用面單模塊準(zhǔn)備好面單數(shù)據(jù)。
訂單一切準(zhǔn)備工作就緒后,OFC下傳模塊會(huì)將符合生產(chǎn)條件(庫(kù)存狀態(tài)、時(shí)效211/311/411)的訂單立刻下傳到庫(kù)房。訂單狀態(tài)變更為:
“您的訂單已經(jīng)進(jìn)入***庫(kù)準(zhǔn)備出庫(kù)”
“您的訂單預(yù)計(jì)***日送達(dá)您手中”
這是京東配送的產(chǎn)品處理流程,第三方商家訂單的處理流程相對(duì)簡(jiǎn)單,不需要判斷是否滿足生產(chǎn)條件,而是經(jīng)過(guò)預(yù)分揀環(huán)節(jié),確定京東是否可配送后,就下發(fā)到商家后臺(tái)系統(tǒng),由商家完成訂單后續(xù)備貨、發(fā)貨流程。到了這里,我們的訂單終于下傳到庫(kù)房。以上龐大復(fù)雜的鏈路是不是耗時(shí)很久呢?當(dāng)然不!訂單從下單到庫(kù)房的時(shí)間已經(jīng)從30分鐘優(yōu)化到5秒,為京東的1小時(shí)達(dá)、211、411等各種超快配送服務(wù)提供了保證。因此,以上的各個(gè)環(huán)節(jié),用戶的感受都是在提交訂單的瞬間完成的。
時(shí)效系統(tǒng)(promise)根據(jù)發(fā)貨倉(cāng)庫(kù)、配貨中心、送貨地址、地圖、實(shí)時(shí)路況等數(shù)據(jù),核算出***路線,并完成精準(zhǔn)送達(dá)時(shí)間的計(jì)算。
而且,為了更快更好的把貨物送到用戶手里,今年京東還推出了移動(dòng)倉(cāng)庫(kù)服務(wù),通過(guò)實(shí)時(shí)定位和調(diào)度移動(dòng)倉(cāng),同時(shí)還涉及到庫(kù)存數(shù)量,根據(jù)覆蓋地區(qū)范圍和時(shí)效的多維度變化以及移動(dòng)貨車各項(xiàng)風(fēng)險(xiǎn)分析控制,實(shí)現(xiàn)更加快速的送達(dá)服務(wù)。一個(gè)包裹的實(shí)物旅程為了更好的服務(wù)于用戶,京東在全國(guó)多地建造了目前國(guó)內(nèi)規(guī)模***、技術(shù)***進(jìn)的物流中心“亞洲一號(hào)”,庫(kù)房實(shí)現(xiàn)了自動(dòng)化分揀系統(tǒng)。在這里,庫(kù)房生產(chǎn)拉開(kāi)序幕。經(jīng)過(guò)庫(kù)房揀貨組、復(fù)核組、打包組接力,訂單庫(kù)房生產(chǎn)結(jié)束。
訂單狀態(tài)變更為:
“您的訂單已揀貨完成”
“掃描員已經(jīng)掃描”
“打包成功”
“揀貨完成”
為了揀貨效率,減少庫(kù)房行走路徑,通常會(huì)將多個(gè)訂單同一商品合并揀貨,再將所有的商品分?jǐn)偟较嚓P(guān)訂單,這個(gè)過(guò)程叫“分貨”。這個(gè)過(guò)程非常復(fù)雜,特別是存在一單一品和一單多品的訂單。京東自創(chuàng)的“籃子”分揀設(shè)備和智能顯示屏,能大大提高分貨效率和準(zhǔn)確性。接下來(lái),將訂單商品在復(fù)核臺(tái)上掃描確認(rèn),進(jìn)行商品打包操作。復(fù)核、打包操作完成也會(huì)回傳狀態(tài)給訂單跟蹤系統(tǒng)。到這里,庫(kù)房?jī)?nèi)的生產(chǎn)操作基本完成了。
庫(kù)房生產(chǎn)還有一項(xiàng)非常重要的工作是打印發(fā)票,主要分為離線發(fā)票和在線發(fā)票,離線發(fā)票是OFC將發(fā)票打印模板和發(fā)票數(shù)據(jù)信息提前推送給庫(kù)房,在線發(fā)票是庫(kù)房根據(jù)訂單號(hào)獲取開(kāi)票模板,通過(guò)調(diào)用發(fā)票接口完成。發(fā)票類型有普通發(fā)票、增值稅發(fā)票和電子發(fā)票,普通發(fā)票是財(cái)務(wù)部門通過(guò)稅控機(jī)打印后回傳,再交由青龍配送系統(tǒng)進(jìn)行配送;增值稅發(fā)票下單時(shí)會(huì)要求填寫郵寄地址,同樣也是通過(guò)青龍系統(tǒng)預(yù)分揀模塊計(jì)算出配送中心;電子發(fā)票由用戶自行下載打印。
打包完成的商品會(huì)被送往分揀中心,分揀中心將送往配送中心的所有訂單準(zhǔn)備就緒。訂單狀態(tài)變更為:
“您的訂單在【***分揀中心】發(fā)揀完成”
“您的訂單在【***分揀中心】發(fā)貨完成,準(zhǔn)備送往【***配送站】”
商品打包完成后,通過(guò)龍門架對(duì)接分揀機(jī)傳送到分揀中心,通常分揀中心就在庫(kù)房隔壁。分揀中心會(huì)對(duì)包裹進(jìn)行收貨、驗(yàn)貨、分貨、裝車、發(fā)車,分揀中心同時(shí)將狀態(tài)回傳給訂單跟蹤系統(tǒng)。
訂單經(jīng)過(guò)幾個(gè)小時(shí)的車程抵達(dá)配送中心,完成驗(yàn)貨。晨光初曉,勤勞的配送小哥載上與您的承諾,開(kāi)啟嶄新一天的旅程。尾聲一張京東訂單的故事講完了,這里描述的系統(tǒng)僅僅是京東成千上萬(wàn)系統(tǒng)中的冰山一角。一張張的訂單背后除了京東強(qiáng)悍的物流配送系統(tǒng),更體現(xiàn)出了京東技術(shù)體系和大數(shù)據(jù)的強(qiáng)勁實(shí)力與大智慧。本文作者:京東架構(gòu)師委員會(huì)&辦公室Jingo組
全文刊登在《京東架構(gòu)師》第六期
本文為原創(chuàng)作品,為尊重作者的勞動(dòng)成果,請(qǐng)轉(zhuǎn)發(fā)務(wù)必注明出處及作者。