爲了雙十一,你知道京東都做了什麼嗎?


【不知各位是否還記得當年劉強東"請IT部門喝咖啡"的報道?那年京東剛推出秒殺活動,用戶體驗還有很大不足,客戶相當多的抱怨。。。!現如今又到雙十一了,回首當年的京東,京東這些年發展之快、變化之大給人的觸動真的太大了。讀了下面這篇文章,對於我就職的單位北京東方佳聯來說,給我們將來的線上銷售系統提供了非常好的借鑑,很值得一讀!】


     無論是廣大消費者還是京東,6.18與雙十一都是一個讓人難以忘卻的日子,雖然不能說是普天同慶,但註定着這兩天並非普通的日子。雙十一對於大多數用戶而言唯一的信念便是購物、下單與秒殺,爲了這個日子,我們熬夜到凌晨,爲了這個日子,我們不惜花費超出平時預算的成本來進行購物。而看似和平常沒有太多異樣的界面,但在內部卻有着天翻地覆的變化。面臨這個用戶流量暴增的日子,京東可謂做足了功夫,而這一切均是爲了保證給予用戶一個良好的線上體驗。對於京東而言,你知道他們內部做了哪些工作嗎?我們一點一點的來了解一下。

一、【線上交易是電商網站的重要組成部分】

        線上交易是電商網站的重要組成部分,在採訪京東商城技術研發體系交易平臺副總監王曉鍾時他介紹到:"線上交易依賴的分支特別多,第一需要知道用戶的信息,第二要知道商品的信息,第三計算價格,第四對於交易來說最重要的是庫存,第五還有虛擬資產的使用。導致整個交易的邏輯特別複雜。每次交易系統都靠前期大量的內部壓力測試,來先找出可能的瓶頸點,同時會有工程師實時監控着線上系統,發現哪些地方存在熱點,並針對熱點做預案。其次京東準備了很多臺機器,新加的機器用於分擔流量,此外有些地方開啓了細微的降級增加一些緩存。例如對於庫存來說,並不太敏感,但對於用戶顯示的依舊正常。"

                        京東商城技術研發體系交易平臺副總監王曉鍾


二、【線上性能測試保證秒殺系統】

        對於用戶而言,整點秒殺算得上是一個"福音",而又會有不少用戶擔心能否成功參與到秒殺活動中來,擔心由於流量過大而導致服務器會癱瘓導致無法秒殺。而京東在線上的集羣非常之多,雖然沒有明確透露,但是卻給出了我們一個例子,假設線上爲兩組,如果要做線上的性能壓測,會把用戶導到其中的一組當中,物理上和與做壓測的那組隔絕。對交易來說,現今已做到分佈式交易,各個組之間的數據都做了隔絕,其中一組壓力過大,哪怕整組宕機,能夠快速把流量入口切換到其他組,保證用戶體驗,同是能夠用於在線上的壓測,並保證信息反饋的真實性。而這幾組沒有透露的集羣非常獨立,後臺發佈系統保證數據移植性,秒殺系統和組交易系統已經剝離,對於電商來說,不是擔心正常用戶訪問下單,怕的是突發峯值(如秒殺),雖然外表看起來一樣,但後面的數據和服務有着天然之別,在今年,京東將其進行了完全隔離,秒殺系統本身也做了優化,將用戶與機器人區分開來,故而機器人搶到的概率很低,並不會影響用戶交易。此外秒殺系統的服務器、服務、數據均是單獨部署,秒殺用的庫存和商品信息都是單獨推送到秒殺系統中,秒殺系統對主站沒有一絲影響。截止目前,秒殺系統一次沒有失敗過。萬一失敗,也會將秒殺在一段時間後從新開啓一輪,將用戶的影響降到最低。


三、【規則限制和監控"殺"惡意流量】

        在這個特別的日子,惡意流量也會暴增,這些惡意的流量無法預測,不是正常的用戶行爲,當然京東也做了大量的規則限制和監控。截止11.11日上午十點京東給出的數據是能夠殺掉70%的惡意流量,不過在後面京東還有着自己的後招,經過前期測試,能夠殺掉99%惡意流量,但目前後招還沒開,目前的量消費系統還能頂住。雖然今天的流量有些恐怖,但京東依舊信心滿滿。通過日誌來進行實時監控,對於京東來說,監控平臺有很多。監控又分爲軟件維度和硬件維度。硬件維度需要看機器的CPU,軟件需要看接口的響應時間或者某個異常拋的次數,但大體還是基於日誌。監控系統本身,京東做了很多方案與備災,例如重要系統的數據隔離與新機器的加入。實時監控系統全由京東自己開發,京東發展到現今,可以說所有的底層技術都是由自己開發的,其很難接受第三方平臺的東西。舉個例子,所有的第三方東西都是造了一個通用的輪子,京東以前可能還是一個卡車,用通用的輪子便可,而現今以目前的業務量來看,京東已經成爲了一輛跑車,對'輪胎'的要求格外之高。所以自己開發的技術適合自己的業務、系統、軟件、硬件、員工和管理。所以監控這種關鍵的系統只能由自己進行定製。


四、【負載均衡交易系統分流機器人】

        上面也提到了惡意流量,除了監控與查殺之外,京東還有這一套自己的負載均衡交易系統,這套系統分爲兩層一層是運營團隊負責入口流量到機房內部的負載均衡,具體的技術選型也是業界常見的幾類。第二層當流量進來後,交易系統單獨做了一層對流量的清洗分流層(京東自主研發),這層更加貼近業務。而清洗分流層的作用便在於外部的惡意流量,例如一個用戶在一分鐘之內訪問了一萬次購物車,基本屬於機器人惡意刷流量,這種用戶會被降低使用體驗,一些請求直接被拒絕,並將其移到一個較慢的機器上去。


五、【交易數據移植保證用戶權益】

        對於用戶而言,除了商品質量問題之外,多扣費用也是一個無法容忍的問題。而交易依賴的是用戶、商品、促銷、庫存這幾方面,這些接口無法做異步,只能同步的來做。但是提起同步,業界分佈式事物是很難繞過去的一個話題,不管是天貓、淘寶還是京東都能稱得上是一個技術上的噩夢。目前京東集中的做法便是提交時做強移植性檢查,提交完後在強移植性檢查的基礎上在做異步的移植性檢查。例如一個訂單沒有提交成功,沒有移植性問題,一旦成功,肯定保證數據移植性。這也就讓用戶權利得到了保障,不會發生多扣等現象。


六、【京東如何考慮自己網站的發展】

        電商一定要考慮好網站的發展問題,一旦發現網站的流量和用戶增長了,就要立刻升級空間,或者將空間變成服務器。京東從軟硬件兩個維度進行了規劃,對於軟件維度就是架構升級,比較好把控,開發人員、測試人員與架構師一起想方案便能想出來,對代碼進行改動,謹慎一些便可。

較難的是硬件方面的規劃,也可以說是機房的規劃,京東在這方面也走了一段漫長的道路,最早的時候沒有太多規劃,只有一個機房,從這個機房(B28)中不斷吸取教訓,每年對機房的規劃(機房申請、內部帶寬佈置、機頂交換機、外圍流量)流量入口分爲世紀互聯、移動、聯通、電信這些運營商都是打通的,對各個運營商都做了不同的規劃,外部流量一旦接入,內部流量就容易規劃了。


七、【用戶的誤區】

        對於用戶而言,一些常見的故障類型包括DNS無法解析、連接超時、響應超時、重定向次數過多、服務器無響應等此類問題被用戶所厭煩,他們首先想到的便是這個電商網站本身的問題,但是這裏存在一個誤區。對於電商網站來說,響應時間的瓶頸其實是在公網互聯網之上,響應時間過慢只能怪自家網絡環境不太優越。以京東的單品頁爲例,單品頁中有一個價格顯示。顯示價格需要很複雜的促銷邏輯計算,還有區域邏輯計算,服務端每一百次調用裏最差的一次也只有15毫秒左右,但在公網那邊,根據機調的數據平均時間要到100多毫秒,差的甚至會到1秒之久。

可以說,6.18一過京東就在開始備戰雙十一這個重要的日子,除了硬件上的採購,機櫃預留,打好提前量,在軟件方面也進行了優化和重構,才能夠導致此次備戰有條不紊的進行,也讓用戶能夠進行安全放心的購物。在採訪中得知,目前京東所擔心的問題並非流量過多,而是用戶流量不夠多。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章