天津JAVA培訓(xùn),誰在為你的雙十一買單?十年牧碼記
雙十一就在周日了,這是大家一年一度的盛大狂歡,而背后卻是無數(shù)工程師們的戰(zhàn)場(chǎng),十年來用一行行代碼搭建起不斷穩(wěn)定、壯大的快樂王國(guó)。
讓我們跟隨一線技術(shù)人員的經(jīng)歷回顧這風(fēng)雨十年。
2009:暴增的流量措手不及
第YI年雙十一,要在光棍節(jié)搞個(gè)活動(dòng)。0點(diǎn)時(shí)發(fā)現(xiàn)流量暴增,服務(wù)器掛了。完全的意料之外,服務(wù)器容量、網(wǎng)絡(luò)帶寬容量、系統(tǒng)保護(hù)都是沒有的,讓大家措手不及。
2010年:吸取經(jīng)驗(yàn),技術(shù)改進(jìn)
前線的工程師回憶第二年的情景:“我們有了心理準(zhǔn)備,但是平時(shí)流量的十幾倍的情況還是出乎意料。基于前一年的經(jīng)驗(yàn)做了很多工作,分布式系統(tǒng)的防雪崩、核心系統(tǒng)的自治,這些技術(shù)改進(jìn)讓系統(tǒng)好了很多,雖然0點(diǎn)高峰還是出現(xiàn)大量的購(gòu)mai失敗,但是服務(wù)器沒有大面積宕機(jī),流量下降后能夠繼續(xù)良好地服務(wù)。”
2011年:亂中出錯(cuò),心有余悸
各團(tuán)隊(duì)提早幾個(gè)月就開始準(zhǔn)備,可是10日晚上23點(diǎn),有發(fā)現(xiàn)設(shè)置的優(yōu)惠價(jià)格寫錯(cuò)了,3折的商品寫成了0.3折。經(jīng)過一次修改以后又回滾,然后重新推送,又出現(xiàn)系統(tǒng)Bug。11日凌晨1點(diǎn),定位到錯(cuò)誤代碼是回滾程序的Bug,決定發(fā)布新的系統(tǒng)。早上5點(diǎn),系統(tǒng)Bug修復(fù)。
2012年:一年磨礪,仍舊艱辛
這一年做了大量穩(wěn)定性的相關(guān)工作。可是那個(gè)0點(diǎn),流量來得比以往更猛一些。
0點(diǎn)的時(shí)候,系統(tǒng)的網(wǎng)卡被打滿了,事先準(zhǔn)備的幾乎所有降級(jí)方案效果并不明顯。
支付寶的健康檢查系統(tǒng)問題。apache 應(yīng)用,連接數(shù)只有1K 多的性能瓶頸,在雙十一的流量之下雪崩了。我們快速啟動(dòng)了應(yīng)急預(yù)案后解決。
2013年:越挫越勇,終見成效
2013年,集合了各個(gè)BU的力量我們創(chuàng)造了一套全新的壓測(cè)系統(tǒng):全鏈路壓測(cè),參加的技術(shù)同學(xué)紛紛感慨稱之為“神器”。但是在0點(diǎn)開始之前還是出現(xiàn)了一個(gè)小插曲。那一年,有驚無險(xiǎn)。0點(diǎn)的成功率滿足期望。而且系統(tǒng)容量和0點(diǎn)的峰值差不多吻合。用戶體驗(yàn)剛剛好。
2014年:異地多活,大戰(zhàn)告捷
2014年,由于用戶和數(shù)據(jù)的急劇增長(zhǎng),杭州的機(jī)房已經(jīng)容納不下我們的系統(tǒng)擴(kuò)容了。于是我們?cè)谏虾=⒘诵碌臋C(jī)房,雙11當(dāng)天,真正啟動(dòng)并且實(shí)現(xiàn)了異地多活的夢(mèng)想。那一年是順利的一次雙11,系統(tǒng)和用戶體驗(yàn)都沒有問題。在雙11的總結(jié)中我們發(fā)現(xiàn)了一個(gè)特別明顯的趨勢(shì),就是無線的占比越來高,雙11當(dāng)天0點(diǎn)已經(jīng)超過50%。
2015年:生死時(shí)刻,幸運(yùn)降臨
流量大大超過了我們的預(yù)期,機(jī)器資源發(fā)生爭(zhēng)搶,有10%的物流機(jī)器被打死,無法響應(yīng),那么落入這批機(jī)器的用戶就會(huì)購(gòu)mai失敗。在0點(diǎn)10分的時(shí)候,我們做了一個(gè)決策,直接剔除了這批死掉的機(jī)器,系統(tǒng)的成功率重新恢復(fù)到正常值,幸運(yùn)地扛住了那個(gè)0點(diǎn)。
2016年:數(shù)據(jù)緩存,巨大突破
阿里自研緩存技術(shù)產(chǎn)品-Tair,數(shù)據(jù)庫(kù)因?yàn)橛辛薚air的幫助,才扛起了雙11如此巨大的數(shù)據(jù)訪問量。
X-KV誕生,它是X-DB的KV組件,通過繞過SQL解析的過程,直接訪問內(nèi)存中的數(shù)據(jù),可以實(shí)現(xiàn)非常高的性能以及比SQL接口低數(shù)倍的響應(yīng)時(shí)間。用戶反饋非常好,QPS可以做到數(shù)十萬級(jí)別。
2017-2018年:存儲(chǔ)計(jì)算分離的技術(shù)突破
2017年初,集團(tuán)高年級(jí)技術(shù)同學(xué)們發(fā)起了一個(gè)技術(shù)討論:到底要不要做存儲(chǔ)計(jì)算分離?為了驗(yàn)證可行性,我們選擇在開源分布式存儲(chǔ)Ceph的基礎(chǔ)上進(jìn)行優(yōu)化,阿里自研高性能分布式存儲(chǔ)盤古2.0也在開發(fā)中,數(shù)據(jù)庫(kù)內(nèi)核團(tuán)隊(duì)也通過數(shù)據(jù)庫(kù)內(nèi)核優(yōu)化減少網(wǎng)絡(luò)延遲對(duì)數(shù)據(jù)庫(kù)性能的影響。2017年雙十一,證明了數(shù)據(jù)庫(kù)存儲(chǔ)計(jì)算分離是完全可行的。
2019年:我們還能怎么優(yōu)化?
Spring boot已經(jīng)成為必須,Spring Data。Spring cloud ,redis緩存 外加大數(shù)據(jù) 微服務(wù) 中間件防堵塞 分布式部署。 大大解決了眾多人群的訪問,因?yàn)榉植际讲渴鹬荒躍pring boot主導(dǎo)。誠(chéng)筑說高并發(fā)理財(cái)支付全站案例讓你也可以擁有一個(gè)屬于自己的系統(tǒng)。也許未來你也可以成為雙十一千軍萬馬中的一員,用代碼打這場(chǎng)java的硬仗。
十年雙十一,技術(shù)在挫折中不斷前進(jìn),無數(shù)工程師們的日夜奮戰(zhàn)為這個(gè)節(jié)日保駕護(hù)航。在2018雙十一到來之際,誠(chéng)筑說向所有牧碼同行說聲辛苦,感謝你們用代碼鋪設(shè)大家的歡樂旅程。



,咨詢QQ:
