死扛零點前十秒流量,預測屌絲取消訂單,為了保衛雙十一京東有多拼?

2020-12-14 雷鋒網

雙十一,剁手黨的節日,恨不能是各大電商程式設計師的忌日。

京東,作為全國買買買炮火的主要目標,架構師、碼農們一邊承擔著全國人民打折購物的殷切期望,一邊承受著老闆東哥如芒在背的犀利目光。

總之,一旦出現閃失,後果不堪設想。

那麼,究竟架構師們如何萬無一失地完成這樣「不允許失敗」的任務呢?

在今天的 SDCC 中國軟體開發者大會上,京東商城總架構師、基礎平臺負責人劉海鋒為現場觀眾介紹了今年保衛京東雙十一的「五大法寶」。

【京東商城總架構師、基礎平臺負責人 劉海鋒】

好鋼留在刀刃上:資源規劃

說到底,雙十一最大的挑戰就是訪問和業務激增。如果能夠提供無限的帶寬和計算資源,那麼雙十一和其他日期不會有任何可以感知的區別。

然而,資源永遠是有限的。這就好像一個人往往不能又買房又買車還天天吃大餐。從這個角度來說,資源規劃就變得非常重要。

每當各種電商節來臨之前,各路部門都變成了嗷嗷待哺的雛鳥。恨不能張口就要十倍於平時的資源。

不過劉海鋒說:

大家都覺得資源充分才不會出問題。但是事實證明,有些部門多準備一些 CPU,心理上可能輕敵,在代碼上就放鬆了警惕,這樣未必可以活下;相反資源不那麼充足的情況下,反而未必死掉。

那麼,有限的 CPU 究竟分給誰呢?

【前端用戶下單方法調用雙十一峰值達到了平均值的16倍,而機房內網絡流量峰值只有平均值的1.5倍】

根據劉海鋒的研究,京東商城前端的訪問系統在零點之前的十幾秒負載達到峰值。幾秒內就可以達到平均值的16倍。這是因為大家都已經選好了想要的商品,只等零點之前刷新下單。但是,這樣狂飆的訪問量在系統內部卻沒有表現得如此恐怖。在系統內部,訪問量可能只有平時的 1.5倍。

我們把各個系統分為兩類:平穩型系統和毛刺型系統。平穩型系統,包括商品的詳情頁、價格頁面、庫存信息等等;毛刺型系統,包括下單、秒殺頁面、搶購頁面等等。

做了細緻的研究之後,對於資源的分配就有了依據。這樣就可以在保證核心流程充分擴容的基礎上,再來滿足錦上添花的功能需求。

「逼」內存做存儲:夯實基礎架構

基礎架構是京東商城的基礎。而在巨大訪問中一旦基礎架構出現了問題,會影響無數附加其上的應用。為了保證這個龐大的基礎架構,京東做了一些重點動作。

多數據中心

劉海鋒說,一個機房的安全係數永遠不夠,一旦出問題將會造成不可估量的損失。所以京東採用了多數據中心的策略。

這種冗餘策略存在於包括電商在內的很多服務中。是一種通用的手段,當然京東也不例外。

全面容器化

京東從2014年開始,對系統進行 Docker 容器化改造。

通俗來說,「容器化」就是把系統的各項資源進行虛擬化,可以更加自由地分配給各個服務。

這種改造有一個巨大的優勢,那就是極大地加快了資源交付和速度,更小地細分了資源的粒度。劉海鋒說,2014年之前,大促時各個系統分資源還在分物理機,而現在大家可以直接分 CPU,系統在後臺直接把 CPU 的計算能力分配給需要的部門。

「逼」內存做磁碟

在京東的構架中,內存可以被用作存儲器,而不是緩存。劉海鋒說,這就是所謂的 JIMDB(以內存為中心的存儲)。

眾所周知,硬碟是在電子化的 IT 架構中,唯一一個還在使用機械結構的元件。它的效率之低令人髮指。所以在大促的時候,訂單內容和實時護具不會回到後臺存儲,直接在內存中被調用。這樣就大大提縮短了系統響應時間。

為此,京東的內存容量儲備達到了 260T。

大促的時候,99%的訪問請求最高延遲都小於 5 毫秒。

劉海鋒說。

消息平臺 JMQ

在京東的體系中,最重要的可能就是訂單和運單數據。而這些數據需要在許多系統內部實時同步。

很多下遊系統關心訂單信息。按照傳統的思路,所有下遊系統都想要獲得訂單信息,必須通過訂單系統,調用其他的接口才能實現。這樣就會給訂單系統帶來極大的壓力。

針對這個矛盾,京東開發了消息平臺 JMQ。JMQ 的工作原理很簡單,大致相當於信息統籌的秘書。訂單系統只需要把數據交給 JMQ,其他系統只需要調用 JMQ 就可以查看信息。這在客觀上大大緩解了訂單系統的壓力。

預測屌絲取消訂單:增強智能

雙十一,所有系統資源全部被調動起來。人工智慧,這個正在井噴的高科技也可以在這個時候「幫工」。

不過,劉海鋒告訴雷鋒網,這並不是什麼虛頭巴腦的大概念,而是一些接地氣的小功能。所以他更願意把它叫做「增強智能」。

增強智能在京東商城的體系內應用場景不少,例如:客服機器人、庫存優化、信息合規校驗、智能物流倉儲等等。劉海鋒舉了兩個有趣的例子。

【替用戶冷靜的「訂單冷靜管道」】

訂單冷靜:屌絲衝動購物的後悔藥

如果我看到別人在大促的當天買了一部手機送給女朋友。我一衝動,一次購買了兩臺,冷靜下來想想, 我還沒有女朋友。這個時候,我可能會選擇退貨。

劉海鋒說。

然而,京東的很多產品都是自營,在下單之後幾分鐘內就已經開始分揀打包。然而, 系統訂單是在幾小時內都支持取消的。

這時,如果用戶選擇了取消訂單,那麼打包工作就浪費了。這對於雙十一期間資源相對寶貴的京東來說,就是一種資源浪費。

這時,就到了人工智慧顯示威力的時候。

如果系統探測到下單買兩部 iPhone 的用戶,經常買奢侈品送給(不同的)女朋友,那麼沒事。如果探測到這個用戶以前購買的最貴的商品就是200塊錢的食用油,並且通過大數據分析,這位用戶可能沒有女朋友。那麼就在後臺自動把訂單「冷靜」10-20分鐘。如果用戶沒有後悔取消訂單,再繼續大寶流程。這有助於減少浪費的成本。

訂單預測:從下單到送到只需 12 分鐘

在雙十一當天,凌晨第一單從下單到出庫到用戶籤收僅僅用了12分31秒。這個看起來有點假的成績是怎麼取得的呢?

如果從下單開始,才從最大的倉庫備貨,12分鐘也許都不夠用來分揀。能夠做到這麼快,要歸功於「訂單預測系統」 。

【訂單預測系統工作原理】

劉海鋒講解了訂單預測系統的工作原理:

一個商圈,將會在雙十一購買多少手機、電池、尿布、啤酒這類標準品,是可以通過大數據來預測的。而京東的庫房是分級的。有後端的倉儲和前端的倉儲。通過預測,京東會提前把一些商品前置到前端倉(FDC),這樣在用戶下單之後就可以瞬間從倉庫發出,就近送到用戶手裡。

「自殘式」演習:大規模故障模擬演練

驗證技術團隊可靠性的最好方式,莫過於真槍實彈的技術演習。

Chaos Monkey,是很多平臺都在使用的故障演習模式,簡單說來就是隨即關閉生產環境中的實例,然後檢查系統是否能經受故障考驗。

劉海鋒把這個英語詞彙改成了更接地氣的中文名稱——響尾蛇。

總之,就是在雙十一真正的考驗來臨之前,用一種「自殘」的方式來檢查系統的可靠性。

劉海鋒介紹,京東的「響尾蛇」行動玩法如下:

把運維人員分為兩組,一組資深的運維工程師在會議室裡,負責模擬故障。而在會議室外面,是負責解決問題的小組。對於將要出現什麼問題,會議室外面的小組是毫不知情的。模擬故障五花八門,從機器到網絡,到模塊,到服務,到中間件和資料庫,甚至整個機房消失。應急小組都必須給出合理的處置方法,拼死保證業務不出現問題。

劉海鋒說,「由於這種演練具有一定的破壞性,所以我們都是在半夜一點到三點之間進行。」

軍演機器人:全鏈路壓力測試

所謂壓力測試,就是在真實模擬無數人訪問京東並作出各種請求的情況下, 測試系統能否正常運作。

雖然各個環節的工程師都會對自己的系統進行壓力測試,但是畢竟這種測試是分散的,導致最終容易在各個業務的接口處產生問題。而且,普通的壓力測試,很難模擬真實用戶的訪問行為。

為此,劉海鋒專門讓團隊開發了「軍演壓力測試機器人」。

這個機器人,就是模擬我們僱傭一億人同時訪問我們網站的行為。這套程序分布在全國各地,對我們的業務做全鏈路的讀寫混合壓力測試。

如同軍演一樣,全鏈路的壓力測試並不如想像般容易實現。例如,這樣的演習不能使用真正的銀行支付,不能影響真正的庫存數量,不能動用真的物流。所以,和演習相關的所有上下遊業務,都要設計一套虛擬系統。

在這套「軍事演習」裡,最重要的步驟就是「黃金鍊路壓力測試」。所謂黃金鍊路,就是普通用戶使用京東的「標準流程」,包括:登錄,搜索,瀏覽,購物,結算,支付。這個鏈路,是雙十一用戶體驗的最主要體現。京東的工程師們不斷對這個鏈路進行測試,就可以發現很多存在的問題。

【黃金鍊路壓力測試流程】

以上,就是京東保障正在看文章的你「剁手順利」的五大法寶。僅僅是24小時的買買買,背後卻涉及無數風險控制手段和資源調度模型。

正如劉海鋒所說,

雙十一是電商企業整體技術能力的一個縮影,各個電商在保障的過程中都會有一些插曲,正是這些小問題,讓中國的電商行業不斷地成長。

SDCC,中國軟體開發者大會。由全球最大中文 IT 社區 CSDN 於2007年創辦,每年舉辦。主題是下一代軟體開發技術趨勢與對各行業的深刻影響,以談乾貨實料著稱。

相關焦點

  • 世間可有「最低訂單IT成本」?京東顏偉鵬的《善戰兵法》
    這意味著京東平臺系統在備戰期間會模擬雙十一大促的真實流量及場景,從而發現大量潛在系統問題,將問題提前暴露出來,並隨之做好預案。顏偉鵬說道:「壓測,一定要模擬用戶流量從京東健康,從京東商城、京喜衝進來,從頭到尾,全部模擬出,全部壓下來,這個過程,得把它叫軍演,更技術的方式叫壓測。
  • 世間可有「最低訂單IT成本」?京東顏偉鵬的《善戰兵法》:
    大戰事,就有大補給。一位頭部品牌廠商、雙十一銷量達1.7億元的美式家具企業創始人曾對我說:「一年只幹兩件事,雙十一,和備戰雙十一」。這個說法告訴我們,為了雙十一,小企業可以傾盡一切。而大電商平臺投入的資源,更是天文數字。輪戰、補充兵源、武器損失……大戰,離不開消耗。理論上,誰也不想在生死之事上考慮如何省錢。但是,善戰者反其道行之。
  • 雙十一為什麼延長並提前?為了反截胡京東
    以前雙十一隻有一天,備多了,怕積壓;備少了,怕缺貨,錯過一年中最火的行情。為什麼買家從10月21日開始就可以支付定金,10天後付尾款?也是為了解決商家的備貨問題。商家可以根據買家支付定金的情況準備貨源,做到有的放矢。訂單多,趕緊備貨。
  • 「雙11」火爆,每秒54.4萬筆成交,1小時3分59秒破1000億!這些A股也...
    天貓訂單峰值54.4萬筆/秒,創世界紀錄雙11購物狂歡節交易額刷新紀錄之時,也在刷新支付峰值、線上交易洪峰。而只有扛住了這一流量洪峰,剁手黨們才能夠支付順暢、購物不卡殼。電商「雙11」走過十一周年,與背後基礎技術革新系密切。
  • 買家"秒殺"訂單被取消 京東和店家稱系統故障
    沒想到的是,在下單及預付款完成後,訂單卻被系統取消。   在京東的十周年店慶月,某服飾店的限時限量促銷活動期間,過百名網友買家遭遇了這樣的一場空歡喜,引來誠信聲討。京東和服飾店均證實,因電腦系統故障導致超賣,已為受影響的買家作全額退款與適當補償。
  • 雙11深度復盤,阿里、京東、拼多多誰是贏家?
    2018年年報長達三百多頁,提到雙11全球購物節一共8次。其中只有一次提到2018年雙11全球最高單日銷售額的輝煌戰績,但至少有5次提到了雙11面臨的潛在風險。年報提到的一大風險點:公司每個季度的經營業績波動很大,因此很難預測未來的業績。通俗來說,雙11的購物促銷對其他時間段的日常消費活動有「抽水」效應。「十月份開始基本上客戶都在問雙十一的活動。
  • 如何看待 2020 年雙十一 成交額 3723 億?你貢獻了多少?
    兩分鐘一條促銷簡訊,幾秒一個購物app優惠信息。打開微博一看更是,10個熱搜一半都是雙十一。蹲守直播間、熬夜搶預售、補尾款、擼貓,購物的號角在雙十一還有大半個月前開始吹響,全世界都在狂轟濫炸著一個消息:雙十一,不買你就虧了。 看起來雙十一是越來越熱鬧,但我卻一點也不快樂。
  • 京東雙十一成交額數據分析 2020年京東雙十一銷量排行榜
    京東雙十一成交額數據分析,京東發布雙11首日戰報,全天成交額同比增長超90%。  京東大數據顯示,11月1日全天,牛奶乳品、洗髮水、米、餅乾蛋糕、抽紙等快消類成為銷量排名前五的品類,手機、洗衣機、平板電視、冰箱、筆記本等3C家電類則位於成交額排名榜首,成交額同比增長TOP品類是服飾內衣、家居日用、美妝護膚、寵物生活、廚具。
  • 拼多多「承包」2021年春晚紅包 「扛得住」12億人同時搖動App嗎?
    9月24日,拼多多宣布成為中央廣播電視總臺2021年《春節聯歡晚會》獨家紅包互動合作夥伴,這是繼微信、支付寶、淘寶、百度、快手之後,第六家將在中國一年一度最重要4個半小時裡創造流量記錄的網際網路公司。作為網際網路新貴,拼多多一向在「砸錢」上最有心得,儘管並未透露今年將投入多少紅包總額,但從以往數據來看,至少是10億級以上。
  • 這個雙十一,阿里、京東兩大電商巨頭又「掐」上了
    點47分26秒,天貓雙十一今年的成交總額突破1000億元,這比去年快了7個多小時。比如21秒破10億,比去年快7秒;2分05秒破100億,比去年用時快了近一分鐘;前1小時成交額比去年多了約100億元;用時1小時16分37秒,成交總額突破912億元,超過2015年雙十一全天成交額。 在公布數據的同時,天貓還用一種幽默的方式表達自己對數據的滿意。比如曬出一張手寫的數據統計圖,然後調侃說用戶下單速度太快,工作人員做數據圖的速度跟不上。
  • 雙11最全戰報:京東十天下單破千億 蘇寧易購50秒破10億
    手機數碼品類方面,零點後的前10分鐘,筆記本電腦銷售額是去年同期的2倍,翻譯機銷量是去年同期的36倍,學生平板銷售量是去年同期的4倍,鍵盤和滑鼠銷售量是去年同期的4倍。 一小時內,京東酒水銷售額達去年同期200%;生鮮品類一小時共計售出840噸,銷售額是去年同期的2.7倍。
  • 「雙十一」深秋流金:流量與銷量博弈
    一邊是阿里巴巴 、京東 商城兩大電商巨頭,雙雙在「雙十一」創下了歷史新高:截至11日21點天貓銷售額已接近5000億元、京東近4000億元。另外,據天貓公布的交易數據顯示,11月1日至11日,2020天貓雙十一訂單創建峰值達58.3萬筆/秒,這一數字是2009年第一次天貓雙十一的1457倍。另外一邊,全球零售行業正在遭遇寒冬。
  • ...快手、百度搶跑;天貓、京東、拼多多、蘇寧抗衡,家居建材家裝...
    一年一度的雙十一全民購物狂歡節又要來臨,一邊是家居建材企業提前布局線上渠道,從前期預熱到活動直播再到特惠促銷;而另一邊,則是各家電商平臺使出渾身解數,推出花樣繁多的商家補貼、流量扶持、平臺多矩陣曝光等政策,只為「雙十一」一戰能贏得漂亮。
  • 拼多多以超低價格競爭流量,未來會超越淘寶等老牌APP嗎?
    從2015年上線以來, 2017年3月,拼多多已擁有1億付費用戶,月GMV超過40億,發展不可謂不迅猛,特別是在電商領域基本已經在阿里系和京東系兩分天下的格局下,能夠異軍突起,還是非常了不起的。在兩年多前,這一個公眾號會發展到今天,成為一個新起的電商平臺,拼多多的模式是比較讓人爭議的,有人說這一種模式好,也有人說,拼多多是靠罰款賺錢的,確實,拼多多的罰款是非常可怕的,大家百度就會搜到N多的答案,怎麼說呢,舉個例吧。
  • 復盤蘇寧雙十一:十年磨一劍的爆發力
    阿里、京東在數據上似乎「你追我趕」,脈衝式的數據也一次次刷新了歷史記錄。但是,橫亙在它們眼前的依然有一個不爭的事實——規模增速跌破30%。不過,數據不是雙十一的唯一看點。在阿里、京東等吸睛的戰報之外,拼多多和蘇寧的表現倒是喜出望外了。拼多多的佛系雙十一暫且按下不表,今天想復盤的是蘇寧雙十一的表現。
  • 今年天貓雙十一紅包怎麼領?淘寶雙11紅包活動玩法京東雙十一攻略
    大家期待已久的雙十一馬上就要來了,還有最後的兩個小時的時間就可以開搶啦,不知道大家喜歡的商品有沒有加購呢?如果還沒有的話那麼就要抓緊了,千萬不要等人家開始搶了你再去找,那樣你肯定省不了太多的,想省的多就要11日0點準時搶,並且領取好雙十一的紅包,在消費的時候就可以自動抵扣了,這樣是非常方便的哈。
  • 阿里雲道哥解密:保衛「雙十一」的技術牛在哪裡 | 硬創公開課
    目前雲盾已經有十多個安全產品,涉及網絡安全、伺服器安全、應用安全、業務安全的各個方面。雲盾的增長非常快,目前保護了全國超過37%的網站,防護中國網際網路抵禦每天50%的大流量DDos攻擊,真正意義上驗證了 SaaS 在安全行業可行性。2.阿里雲的業務安全體系到底有哪些?哪些是重點保護對象?
  • 雙十一又創紀錄!但這次卻有人來砸場子了
    來源:天下齊觀昨天,是電商們打掃戰場的日子,數據顯示,2019年天貓雙十一總成交,也就是GMV達到了2684億元,成功的繼續刷新著自己保持的紀錄,而第一個100億,只用時1分36秒,第一個1000億,用時只有1小時3分59秒,用了16個半小時
  • 京東下架、天貓拼多多屏蔽,電子菸企業沒能熬到雙11
    政策出臺數日,以淘寶、京東、拼多多、閒魚為代表的電商平臺,並未即刻下架電子菸。直到5日晚間,京東屏蔽了「電子菸」和部分電子菸品牌的關鍵詞,6日全面下架。6日下午,業內有消息稱當天將迎來集中清理。晚間,悅刻、唯它等電子菸品牌先後主動下架天貓旗艦店。7日凌晨,淘寶、天貓、閒魚以及拼多多也已經屏蔽了「電子菸」關鍵詞,但暫未全部下架。
  • 電商新勢力搶跑「雙十一」,商家卻開始回流淘寶京東
    流量平臺搶灘電商百度上線「購物」頻道被視為入局「雙十一」的徵兆。公開資料顯示,2019年,百度推出了自己的電商平臺「度小店」,針對品牌電商、二類電商和內容電商提供建店、交易、結算、訂單等能力。而在今年618期間,百度也曾短暫上線過618頻道,貨源既來自「度小店」,同時也接入京東商品池的供應鏈、物流和售後體系。百度官方公布數據顯示,在6月18日當天,百度直播帶貨活動單場成交額突破1千萬。整個618大促活動期間,百度直播帶貨整體成交額環比增長571%,相較於百度,具備流量優勢的移動社交平臺也開始準備「賽前戰」。