丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
政企安全 正文
發(fā)私信給史中
發(fā)送

0

死扛零點(diǎn)前十秒流量,預(yù)測(cè)取消訂單,為了保衛(wèi)雙十一京東有多拼?

本文作者: 史中 2016-11-19 14:43
導(dǎo)語(yǔ):你知道京東有多努力嗎?為了讓你剁手,架構(gòu)師和程序員都拼了。

雙十一,剁手黨的節(jié)日,恨不能是各大電商程序員的忌日。

京東,作為全國(guó)買買買炮火的主要目標(biāo),架構(gòu)師、碼農(nóng)們一邊承擔(dān)著全國(guó)人民打折購(gòu)物的殷切期望,一邊承受著老板東哥如芒在背的犀利目光。

總之,一旦出現(xiàn)閃失,后果不堪設(shè)想。

那么,究竟架構(gòu)師們?nèi)绾稳f(wàn)無(wú)一失地完成這樣“不允許失敗”的任務(wù)呢?

在今天的 SDCC 中國(guó)軟件開發(fā)者大會(huì)上,京東商城總架構(gòu)師、基礎(chǔ)平臺(tái)負(fù)責(zé)人劉海鋒為現(xiàn)場(chǎng)觀眾介紹了今年保衛(wèi)京東雙十一的“五大法寶”。

死扛零點(diǎn)前十秒流量,預(yù)測(cè)取消訂單,為了保衛(wèi)雙十一京東有多拼?

【京東商城總架構(gòu)師、基礎(chǔ)平臺(tái)負(fù)責(zé)人 劉海鋒】

好鋼留在刀刃上:資源規(guī)劃

說到底,雙十一最大的挑戰(zhàn)就是訪問和業(yè)務(wù)激增。如果能夠提供無(wú)限的帶寬和計(jì)算資源,那么雙十一和其他日期不會(huì)有任何可以感知的區(qū)別。

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

每當(dāng)各種電商節(jié)來臨之前,各路部門都變成了嗷嗷待哺的雛鳥。恨不能張口就要十倍于平時(shí)的資源。

不過劉海鋒說:

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

那么,有限的 CPU 究竟分給誰(shuí)呢?

死扛零點(diǎn)前十秒流量,預(yù)測(cè)取消訂單,為了保衛(wèi)雙十一京東有多拼?

【前端用戶下單方法調(diào)用雙十一峰值達(dá)到了平均值的16倍,而機(jī)房?jī)?nèi)網(wǎng)絡(luò)流量峰值只有平均值的1.5倍】

根據(jù)劉海鋒的研究,京東商城前端的訪問系統(tǒng)在零點(diǎn)之前的十幾秒負(fù)載達(dá)到峰值。幾秒內(nèi)就可以達(dá)到平均值的16倍。這是因?yàn)榇蠹叶家呀?jīng)選好了想要的商品,只等零點(diǎn)之前刷新下單。但是,這樣狂飆的訪問量在系統(tǒng)內(nèi)部卻沒有表現(xiàn)得如此恐怖。在系統(tǒng)內(nèi)部,訪問量可能只有平時(shí)的 1.5倍。

我們把各個(gè)系統(tǒng)分為兩類:平穩(wěn)型系統(tǒng)和毛刺型系統(tǒng)。


平穩(wěn)型系統(tǒng),包括商品的詳情頁(yè)、價(jià)格頁(yè)面、庫(kù)存信息等等;


毛刺型系統(tǒng),包括下單、秒殺頁(yè)面、搶購(gòu)頁(yè)面等等。

死扛零點(diǎn)前十秒流量,預(yù)測(cè)取消訂單,為了保衛(wèi)雙十一京東有多拼?

做了細(xì)致的研究之后,對(duì)于資源的分配就有了依據(jù)。這樣就可以在保證核心流程充分?jǐn)U容的基礎(chǔ)上,再來滿足錦上添花的功能需求。

“逼”內(nèi)存做存儲(chǔ):夯實(shí)基礎(chǔ)架構(gòu)

基礎(chǔ)架構(gòu)是京東商城的基礎(chǔ)。而在巨大訪問中一旦基礎(chǔ)架構(gòu)出現(xiàn)了問題,會(huì)影響無(wú)數(shù)附加其上的應(yīng)用。為了保證這個(gè)龐大的基礎(chǔ)架構(gòu),京東做了一些重點(diǎn)動(dòng)作。

多數(shù)據(jù)中心

劉海鋒說,一個(gè)機(jī)房的安全系數(shù)永遠(yuǎn)不夠,一旦出問題將會(huì)造成不可估量的損失。所以京東采用了多數(shù)據(jù)中心的策略。

這種冗余策略存在于包括電商在內(nèi)的很多服務(wù)中。是一種通用的手段,當(dāng)然京東也不例外。

全面容器化

京東從2014年開始,對(duì)系統(tǒng)進(jìn)行 Docker 容器化改造。

通俗來說,“容器化”就是把系統(tǒng)的各項(xiàng)資源進(jìn)行虛擬化,可以更加自由地分配給各個(gè)服務(wù)。

這種改造有一個(gè)巨大的優(yōu)勢(shì),那就是極大地加快了資源交付和速度,更小地細(xì)分了資源的粒度。劉海鋒說,2014年之前,大促時(shí)各個(gè)系統(tǒng)分資源還在分物理機(jī),而現(xiàn)在大家可以直接分 CPU,系統(tǒng)在后臺(tái)直接把 CPU 的計(jì)算能力分配給需要的部門。

“逼”內(nèi)存做磁盤

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

眾所周知,硬盤是在電子化的 IT 架構(gòu)中,唯一一個(gè)還在使用機(jī)械結(jié)構(gòu)的元件。它的效率之低令人發(fā)指。所以在大促的時(shí)候,訂單內(nèi)容和實(shí)時(shí)護(hù)具不會(huì)回到后臺(tái)存儲(chǔ),直接在內(nèi)存中被調(diào)用。這樣就大大提縮短了系統(tǒng)響應(yīng)時(shí)間。

為此,京東的內(nèi)存容量?jī)?chǔ)備達(dá)到了 260T。

大促的時(shí)候,99%的訪問請(qǐng)求最高延遲都小于 5 毫秒。

劉海鋒說。

消息平臺(tái) JMQ

在京東的體系中,最重要的可能就是訂單和運(yùn)單數(shù)據(jù)。而這些數(shù)據(jù)需要在許多系統(tǒng)內(nèi)部實(shí)時(shí)同步。

很多下游系統(tǒng)關(guān)心訂單信息。按照傳統(tǒng)的思路,所有下游系統(tǒng)都想要獲得訂單信息,必須通過訂單系統(tǒng),調(diào)用其他的接口才能實(shí)現(xiàn)。這樣就會(huì)給訂單系統(tǒng)帶來極大的壓力。

針對(duì)這個(gè)矛盾,京東開發(fā)了消息平臺(tái) JMQ。JMQ 的工作原理很簡(jiǎn)單,大致相當(dāng)于信息統(tǒng)籌的秘書。訂單系統(tǒng)只需要把數(shù)據(jù)交給 JMQ,其他系統(tǒng)只需要調(diào)用 JMQ 就可以查看信息。這在客觀上大大緩解了訂單系統(tǒng)的壓力。

預(yù)測(cè)取消訂單:增強(qiáng)智能

雙十一,所有系統(tǒng)資源全部被調(diào)動(dòng)起來。人工智能,這個(gè)正在井噴的高科技也可以在這個(gè)時(shí)候“幫工”。

不過,劉海鋒告訴雷鋒網(wǎng),這并不是什么虛頭巴腦的大概念,而是一些接地氣的小功能。所以他更愿意把它叫做“增強(qiáng)智能”。

增強(qiáng)智能在京東商城的體系內(nèi)應(yīng)用場(chǎng)景不少,例如:客服機(jī)器人、庫(kù)存優(yōu)化、信息合規(guī)校驗(yàn)、智能物流倉(cāng)儲(chǔ)等等。劉海鋒舉了兩個(gè)有趣的例子。

死扛零點(diǎn)前十秒流量,預(yù)測(cè)取消訂單,為了保衛(wèi)雙十一京東有多拼?

【替用戶冷靜的“訂單冷靜管道”】

訂單冷靜:沖動(dòng)購(gòu)物的后悔藥

如果我看到別人在大促的當(dāng)天買了一部手機(jī)送給女朋友。我一沖動(dòng),一次購(gòu)買了兩臺(tái),冷靜下來想想, 我還沒有女朋友。這個(gè)時(shí)候,我可能會(huì)選擇退貨。

劉海鋒說。

然而,京東的很多產(chǎn)品都是自營(yíng),在下單之后幾分鐘內(nèi)就已經(jīng)開始分揀打包。然而, 系統(tǒng)訂單是在幾小時(shí)內(nèi)都支持取消的。

這時(shí),如果用戶選擇了取消訂單,那么打包工作就浪費(fèi)了。這對(duì)于雙十一期間資源相對(duì)寶貴的京東來說,就是一種資源浪費(fèi)。

這時(shí),就到了人工智能顯示威力的時(shí)候。

如果系統(tǒng)探測(cè)到下單買兩部 iPhone 的用戶,經(jīng)常買奢侈品送給(不同的)女朋友,那么沒事。如果探測(cè)到這個(gè)用戶以前購(gòu)買的最貴的商品就是200塊錢的食用油,并且通過大數(shù)據(jù)分析,這位用戶可能沒有女朋友。那么就在后臺(tái)自動(dòng)把訂單“冷靜”10-20分鐘。如果用戶沒有后悔取消訂單,再繼續(xù)大寶流程。這有助于減少浪費(fèi)的成本。

訂單預(yù)測(cè):從下單到送到只需 12 分鐘

在雙十一當(dāng)天,凌晨第一單從下單到出庫(kù)到用戶簽收僅僅用了12分31秒。這個(gè)看起來有點(diǎn)假的成績(jī)是怎么取得的呢?

如果從下單開始,才從最大的倉(cāng)庫(kù)備貨,12分鐘也許都不夠用來分揀。能夠做到這么快,要?dú)w功于“訂單預(yù)測(cè)系統(tǒng)” 。

死扛零點(diǎn)前十秒流量,預(yù)測(cè)取消訂單,為了保衛(wèi)雙十一京東有多拼?

【訂單預(yù)測(cè)系統(tǒng)工作原理】

劉海鋒講解了訂單預(yù)測(cè)系統(tǒng)的工作原理:

一個(gè)商圈,將會(huì)在雙十一購(gòu)買多少手機(jī)、電池、尿布、啤酒這類標(biāo)準(zhǔn)品,是可以通過大數(shù)據(jù)來預(yù)測(cè)的。而京東的庫(kù)房是分級(jí)的。有后端的倉(cāng)儲(chǔ)和前端的倉(cāng)儲(chǔ)。通過預(yù)測(cè),京東會(huì)提前把一些商品前置到前端倉(cāng)(FDC),這樣在用戶下單之后就可以瞬間從倉(cāng)庫(kù)發(fā)出,就近送到用戶手里。

“自殘式”演習(xí):大規(guī)模故障模擬演練

驗(yàn)證技術(shù)團(tuán)隊(duì)可靠性的最好方式,莫過于真槍實(shí)彈的技術(shù)演習(xí)。

Chaos Monkey,是很多平臺(tái)都在使用的故障演習(xí)模式,簡(jiǎn)單說來就是隨即關(guān)閉生產(chǎn)環(huán)境中的實(shí)例,然后檢查系統(tǒng)是否能經(jīng)受故障考驗(yàn)。

劉海鋒把這個(gè)英語(yǔ)詞匯改成了更接地氣的中文名稱——響尾蛇。

總之,就是在雙十一真正的考驗(yàn)來臨之前,用一種“自殘”的方式來檢查系統(tǒng)的可靠性。

劉海鋒介紹,京東的“響尾蛇”行動(dòng)玩法如下:

把運(yùn)維人員分為兩組,一組資深的運(yùn)維工程師在會(huì)議室里,負(fù)責(zé)模擬故障。而在會(huì)議室外面,是負(fù)責(zé)解決問題的小組。對(duì)于將要出現(xiàn)什么問題,會(huì)議室外面的小組是毫不知情的。模擬故障五花八門,從機(jī)器到網(wǎng)絡(luò),到模塊,到服務(wù),到中間件和數(shù)據(jù)庫(kù),甚至整個(gè)機(jī)房消失。應(yīng)急小組都必須給出合理的處置方法,拼死保證業(yè)務(wù)不出現(xiàn)問題。

劉海鋒說,“由于這種演練具有一定的破壞性,所以我們都是在半夜一點(diǎn)到三點(diǎn)之間進(jìn)行。”

軍演機(jī)器人:全鏈路壓力測(cè)試

所謂壓力測(cè)試,就是在真實(shí)模擬無(wú)數(shù)人訪問京東并作出各種請(qǐng)求的情況下, 測(cè)試系統(tǒng)能否正常運(yùn)作。

雖然各個(gè)環(huán)節(jié)的工程師都會(huì)對(duì)自己的系統(tǒng)進(jìn)行壓力測(cè)試,但是畢竟這種測(cè)試是分散的,導(dǎo)致最終容易在各個(gè)業(yè)務(wù)的接口處產(chǎn)生問題。而且,普通的壓力測(cè)試,很難模擬真實(shí)用戶的訪問行為。

為此,劉海鋒專門讓團(tuán)隊(duì)開發(fā)了“軍演壓力測(cè)試機(jī)器人”。

這個(gè)機(jī)器人,就是模擬我們雇傭一億人同時(shí)訪問我們網(wǎng)站的行為。這套程序分布在全國(guó)各地,對(duì)我們的業(yè)務(wù)做全鏈路的讀寫混合壓力測(cè)試。

如同軍演一樣,全鏈路的壓力測(cè)試并不如想象般容易實(shí)現(xiàn)。例如,這樣的演習(xí)不能使用真正的銀行支付,不能影響真正的庫(kù)存數(shù)量,不能動(dòng)用真的物流。所以,和演習(xí)相關(guān)的所有上下游業(yè)務(wù),都要設(shè)計(jì)一套虛擬系統(tǒng)。

在這套“軍事演習(xí)”里,最重要的步驟就是“黃金鏈路壓力測(cè)試”。所謂黃金鏈路,就是普通用戶使用京東的“標(biāo)準(zhǔn)流程”,包括:登錄,搜索,瀏覽,購(gòu)物,結(jié)算,支付。這個(gè)鏈路,是雙十一用戶體驗(yàn)的最主要體現(xiàn)。京東的工程師們不斷對(duì)這個(gè)鏈路進(jìn)行測(cè)試,就可以發(fā)現(xiàn)很多存在的問題。

死扛零點(diǎn)前十秒流量,預(yù)測(cè)取消訂單,為了保衛(wèi)雙十一京東有多拼?

【黃金鏈路壓力測(cè)試流程】

以上,就是京東保障正在看文章的你“剁手順利”的五大法寶。僅僅是24小時(shí)的買買買,背后卻涉及無(wú)數(shù)風(fēng)險(xiǎn)控制手段和資源調(diào)度模型。

正如劉海鋒所說,

雙十一是電商企業(yè)整體技術(shù)能力的一個(gè)縮影,各個(gè)電商在保障的過程中都會(huì)有一些插曲,正是這些小問題,讓中國(guó)的電商行業(yè)不斷地成長(zhǎng)。


SDCC,中國(guó)軟件開發(fā)者大會(huì)。由全球最大中文 IT 社區(qū) CSDN 于2007年創(chuàng)辦,每年舉辦。主題是下一代軟件開發(fā)技術(shù)趨勢(shì)與對(duì)各行業(yè)的深刻影響,以談干貨實(shí)料著稱。

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

分享:
相關(guān)文章

編輯

雷鋒網(wǎng)編輯,關(guān)注科技人文,安全、黑客及芯片。
當(dāng)月熱門文章
最新文章
請(qǐng)?zhí)顚懮暾?qǐng)人資料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說