支撐618大促 京東都在做什么?
原創(chuàng)電商網(wǎng)站如何在重大節(jié)日支撐龐大的訪問量和成交量一直是業(yè)內(nèi)人士關(guān)注的話題。
京東618過去不久,京東官方公布的數(shù)據(jù)顯示,6月18日當(dāng)日的下單量超過1500萬單,相比去年同期增長超過100%,其中移動端訂單量占比超過60%。
京東集團(tuán)高級副總裁張晨公開表示:“今年618,京東的備戰(zhàn)系統(tǒng)沒有出現(xiàn)任何問題。”7月4日,京東技術(shù)開放日邀請京東各個業(yè)務(wù)線的負(fù)責(zé)人,分享京東如何支撐618大促。
不斷改進(jìn)京東技術(shù)架構(gòu)
京東自1998年在北京成立,已經(jīng)12年。從2010年開始,京東618大促活動已經(jīng)經(jīng)歷了六年。為了更好支撐大促,京東一直在對系統(tǒng)架構(gòu)進(jìn)行優(yōu)化和改造。
京東商城交易平臺總監(jiān)王曉鐘表示,618剛開始的兩年,技術(shù)不成熟,所以京東開始做改變。他介紹,京東用了四年的時間,才把系統(tǒng)提升到如今的穩(wěn)定性。
2011年-2012年,京東一直做技術(shù)和架構(gòu)上的突破。
2013年-2014年,整體的技術(shù)架構(gòu)已經(jīng)穩(wěn)定,技術(shù)上的突破由架構(gòu)級變成點級,如改進(jìn)核心代碼;此外,他透露,原先管理上跟不上,這兩年對管理做了改進(jìn),團(tuán)隊更加成熟。
2014年-2015年,多中心交易擴(kuò)展悄然進(jìn)行。王曉鐘透露,今年618與去年相比,***的不同是今年采用了多中心交易。去年雙11結(jié)束后,京東開始往多中心交易方向去改造。今年,面向用戶的讀流量,已經(jīng)用上了多中心交易。下一步,要實現(xiàn)面向用戶寫流量的多中心。
下一個攻克難點:面向用戶的寫流量
王曉鐘透露,面向用戶的讀流量已經(jīng)達(dá)到標(biāo)準(zhǔn),整個團(tuán)隊下半年的技術(shù)攻關(guān)重點是寫流量。
首先來普及一下這兩個概念。讀流量:是指用戶在瀏覽電商網(wǎng)站時不能改變的數(shù)據(jù),比如商品的名稱、商品的價格、商品的庫存。寫流量:是指用戶可以改變的數(shù)據(jù),比如賬戶的余額、優(yōu)惠券、取消訂單等。寫流量分為兩塊,一塊是面向用戶,用戶看到的京東商城;另一塊是采銷和運營人員看到的商城,他們能改變商品的名稱、價格和庫存。
讀流量的分布沒有一致性的問題,相對靜止;寫流量是動態(tài)的。王曉鐘分析:“例如,如果一瓶礦泉水通過機(jī)房一賣出,機(jī)房二也要扣掉一瓶的數(shù),高并發(fā)情況下,兩個機(jī)房同時存在流量。舉個例子,北京市還有十瓶礦泉水,兩個機(jī)房同時接到一單,機(jī)房一需要八瓶礦泉水,機(jī)房二也需要八瓶礦泉水,總共十六瓶。那這八瓶給誰不給誰?兩個機(jī)房都能看到庫存還有十瓶。***,一定是其中一個機(jī)房看到另一個機(jī)房的數(shù)據(jù),才能解決這個問題,所以這個問題特別難解決。”
事實上,業(yè)內(nèi)寫流量的問題不僅存在于京東,支付寶、12306都存在這樣的問題,高并發(fā)時,數(shù)據(jù)一致性是非常難解決的。
向MySQL遷移來解決問題
京東資深架構(gòu)師者文明表示,目前京東95%以上的應(yīng)用都已經(jīng)跑在MySQL上。他認(rèn)為,Oracle的數(shù)據(jù)庫不夠靈活,水平擴(kuò)展有局限限制,非金融類的業(yè)務(wù),完全沒有必要使用Oracle。
他表示,寫流量瓶頸的問題,也可以通過MySQL來解決,主要通過以下幾個方面:
1、 把現(xiàn)有放在Oracle數(shù)據(jù)庫上的應(yīng)用遷移到MySQL上;
2、 對數(shù)據(jù)庫進(jìn)行水平切分,即拆表拆庫;
3、 提升I/O性能,通過優(yōu)化軟件、升級服務(wù)器、增加服務(wù)器實現(xiàn);
4、 異步寫數(shù)據(jù)庫
者文明表示:“目前京東的寫流量沒有達(dá)到已有業(yè)務(wù)的瓶頸,但是作為技術(shù)部門要提前突破瓶頸,到今年雙11就能解決寫流量瓶頸的問題。”
編后語:
采訪中,王曉鐘表示,很多優(yōu)化都是通過加機(jī)器的方式解決,小的瓶頸有很多優(yōu)化的點,但是大的瓶頸,仍需要通過加機(jī)器的方式來解決。整個架構(gòu)發(fā)展經(jīng)過兩個階段,***個階段,應(yīng)用和數(shù)據(jù)不支持水平擴(kuò)展,加機(jī)器沒有用;第二個階段,支持水平擴(kuò)展后,加機(jī)器很管用。而他認(rèn)為,面對高并發(fā)的大促,臨時加機(jī)器是不靠譜的,流量都要提前預(yù)估好,本次京東618準(zhǔn)備了平時10倍的流量。