POLARDB是阿里云自研的下一代關(guān)系型云數(shù)據(jù)庫(kù),100%兼容MySQL,存儲(chǔ)容量最高可達(dá)100TB,性能最高提升至MySQL的6倍,適用于企業(yè)多樣化的數(shù)據(jù)庫(kù)應(yīng)用場(chǎng)景。POLARDB采用存儲(chǔ)和計(jì)算分離的架構(gòu),所有計(jì)算節(jié)點(diǎn)共享一份數(shù)據(jù),提供分鐘級(jí)的配置升降級(jí)、秒級(jí)的故障恢復(fù)、全局?jǐn)?shù)據(jù)一致性和免費(fèi)的數(shù)據(jù)備份容災(zāi)服務(wù)。本文就介紹了百勝軟件的阿里云數(shù)據(jù)庫(kù)最佳實(shí)踐,為大家分享POLARDB如何幫助百勝應(yīng)對(duì)數(shù)據(jù)庫(kù)的“巔峰時(shí)刻”。
百勝軟件的業(yè)務(wù)
上海百勝軟件股份有限公司成立于2000年,是國(guó)內(nèi)知名的全渠道新零售解決方案服務(wù)商,為鞋服、運(yùn)動(dòng)、家居、日化、美妝、珠寶、食品等品牌企業(yè)提供管理咨詢和信息化解決方案,業(yè)務(wù)涵蓋全渠道中臺(tái)、零售分銷(xiāo)、供應(yīng)鏈、電子商務(wù)、移動(dòng)應(yīng)用、大數(shù)據(jù)等領(lǐng)域。
目前,百勝軟件與旗下22家分子公司及全國(guó)100多家星聯(lián)服務(wù)機(jī)構(gòu),為客戶提供專業(yè)及時(shí)的服務(wù)支持,安全保障30多萬(wàn)家實(shí)體門(mén)店和2萬(wàn)多家網(wǎng)上商店的日常運(yùn)營(yíng)。新零售時(shí)代百勝軟件致力于為中國(guó)零售企業(yè)提供全渠道新零售解決方案,幫助客戶實(shí)現(xiàn)零售轉(zhuǎn)型和商業(yè)創(chuàng)新,成就智慧品牌,創(chuàng)造非凡價(jià)值。
百勝iSHOP在線商城是以移動(dòng)互聯(lián)網(wǎng)時(shí)代消費(fèi)者驅(qū)動(dòng)業(yè)務(wù)為核心,充分滿足企業(yè)在不同觸點(diǎn)場(chǎng)景下實(shí)現(xiàn)互動(dòng)、體驗(yàn)、便捷交易的統(tǒng)一及業(yè)務(wù)成長(zhǎng)的中高端電子商務(wù)銷(xiāo)售平臺(tái)。
百勝iSHOP在線零售商城
百勝軟件面臨的挑戰(zhàn)
百勝目前服務(wù)30多萬(wàn)家實(shí)體POS門(mén)店與2萬(wàn)多家網(wǎng)上商店,隨著業(yè)務(wù)量增長(zhǎng)與業(yè)務(wù)波動(dòng)傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)難以滿足業(yè)務(wù)增長(zhǎng)需求。具體而言,百勝所面對(duì)的業(yè)務(wù)挑戰(zhàn)主要有以下兩點(diǎn):
挑戰(zhàn)1:高峰時(shí)刻交易延遲激增
在使用阿里云數(shù)據(jù)庫(kù)之前,百勝軟件采用的是自建數(shù)據(jù)庫(kù)。當(dāng)時(shí)規(guī)模最大的零售終端業(yè)務(wù)在節(jié)假日的高峰時(shí)期經(jīng)常會(huì)出現(xiàn)卡頓,平時(shí)2秒內(nèi)可完成的交易激增到10到15秒才能夠完成,甚至?xí)霈F(xiàn)交易失敗,需要重新交易現(xiàn)象。
挑戰(zhàn)2:數(shù)據(jù)庫(kù)容量接近極限,業(yè)務(wù)被迫延緩
在使用阿里云數(shù)據(jù)庫(kù)之前,百勝軟件的自建數(shù)據(jù)庫(kù)容量已經(jīng)接近極限,業(yè)務(wù)擴(kuò)展被迫因此延緩。當(dāng)時(shí)出現(xiàn)的情況是:只有當(dāng)歷史數(shù)據(jù)被歸檔和清理之后,才能接入新業(yè)務(wù)。
為何選擇阿里云POLARDB
首先,阿里云POLARDB簡(jiǎn)單易用,它100%兼容MySQL,原有的使用MySQL數(shù)據(jù)庫(kù)的應(yīng)用程序代碼無(wú)需更改,就可以在POLARDB上運(yùn)行。其次,阿里云POLARDB具有極致性能,其針對(duì)數(shù)據(jù)庫(kù)內(nèi)核進(jìn)行深度優(yōu)化,讀性能最高能達(dá)到MySQL的6倍。再次,POLARDB采用分布式塊存儲(chǔ)設(shè)計(jì)和文件系統(tǒng),使得存儲(chǔ)容量不限制于單節(jié)點(diǎn)的規(guī)格,能夠輕松擴(kuò)展,應(yīng)對(duì)上百TB級(jí)別的數(shù)據(jù)規(guī)模。此外,阿里云POLARDB還有高可用和高可靠保障,并且具有較高的數(shù)據(jù)安全性。
其實(shí),百勝最為看重的就是阿里云POLARDB所具有的快速?gòu)椥阅芰Γ瑹o(wú)論是增刪節(jié)點(diǎn)還是升降級(jí)配置,都能夠在3分鐘內(nèi)生效,這使得百勝能夠在業(yè)務(wù)高峰期快速擴(kuò)展只讀實(shí)例。而在快速擴(kuò)展能力的背后則是因?yàn)榘⒗镌芇OLARDB由多個(gè)節(jié)點(diǎn)構(gòu)成的數(shù)據(jù)庫(kù)集群,該集群具有一個(gè)主節(jié)點(diǎn),還可以擴(kuò)展出多個(gè)讀節(jié)點(diǎn)。其對(duì)外默認(rèn)提供了兩個(gè)地址,一個(gè)是集群地址,一個(gè)是主地址,一般而言推薦使用集群地址,因?yàn)樗邆渥x寫(xiě)分離功能可以把所有節(jié)點(diǎn)的資源整合到一起對(duì)外提供服務(wù)。
阿里云POLARDB集群架構(gòu)
POLARDB讀寫(xiě)分離的會(huì)話讀一致性助力全渠道邁向新零售
在百勝軟件所最為看重的POLARDB快速擴(kuò)展只讀實(shí)例能力的背后,其核心技術(shù)其實(shí)是POLARDB讀寫(xiě)分離的會(huì)話讀一致性。傳統(tǒng)數(shù)據(jù)庫(kù)解決方案的讀寫(xiě)分離都只提供最終一致性的保證,主從復(fù)制延遲會(huì)導(dǎo)致從不同節(jié)點(diǎn)查詢到的結(jié)果不同。POLARDB采用的是讀寫(xiě)分離的架構(gòu),而為了解決這種情況下查詢結(jié)果不確定的問(wèn)題,而傳統(tǒng)解決方案往往會(huì)增加應(yīng)用開(kāi)發(fā)的負(fù)擔(dān),還會(huì)增大主庫(kù)的壓力,影響讀寫(xiě)分離的效果。為了應(yīng)對(duì)上述挑戰(zhàn),POLARDB提供了會(huì)話一致性的保證。會(huì)話一致性也就是保證在同一個(gè)會(huì)話內(nèi),后面的請(qǐng)求一定能夠看到此前更新所產(chǎn)生版本的數(shù)據(jù)或者比這個(gè)版本更新的數(shù)據(jù),保證單調(diào)性。其實(shí)現(xiàn)原理如下所示:
POLARDB讀寫(xiě)分離會(huì)話讀一致性的實(shí)現(xiàn)原理
在POLARDB的鏈路中間層做讀寫(xiě)分離的同時(shí),會(huì)跟蹤各個(gè)節(jié)點(diǎn)的redolog位點(diǎn),也就是LSN。每次更新時(shí)會(huì)記錄此次更新的位點(diǎn)為Session LSN, 當(dāng)有新請(qǐng)求到來(lái)時(shí)則會(huì)比較Session LSN和當(dāng)前各個(gè)節(jié)點(diǎn)的LSN,僅將請(qǐng)求發(fā)往LSN >= Session LSN的節(jié)點(diǎn),從而保證了會(huì)話一致性。因?yàn)镻OLARDB采用了物理復(fù)制方式,速度極快,因此并不會(huì)對(duì)于主庫(kù)造成太大壓力。另一方面,由于大多數(shù)應(yīng)用場(chǎng)景都是讀多寫(xiě)少,通過(guò)經(jīng)驗(yàn)也驗(yàn)證了該機(jī)制能夠保證會(huì)話一致性,同時(shí)也保證了讀寫(xiě)分離負(fù)載均衡的效果。
在阿里云的幫助下,百勝軟件將自身在線零售商城后臺(tái)的MySQL數(shù)據(jù)庫(kù)改為阿里云的POLARDB數(shù)據(jù)庫(kù),借助POLARDB強(qiáng)大的讀寫(xiě)分離能力,百勝軟件能夠在業(yè)務(wù)壓力增長(zhǎng)時(shí)通過(guò)增加只讀實(shí)例來(lái)輕松應(yīng)對(duì),而在業(yè)務(wù)高峰期過(guò)后,又可以輕松地刪除只讀實(shí)例或降低配置來(lái)綜合控制成本。阿里云POLARDB的彈性擴(kuò)容、在線升級(jí)、數(shù)據(jù)安全可靠、高可用保障,以及零成本上云遷移的優(yōu)秀特性極大地助力了百勝在全渠道上邁向新零售。
百勝iSHOP基于阿里云的數(shù)據(jù)庫(kù)解決方案
阿里云POLARDB采用容器虛擬化技術(shù)和共享的分布式塊存儲(chǔ)技術(shù),使得數(shù)據(jù)庫(kù)服務(wù)器的CPU、內(nèi)存能夠輕松實(shí)現(xiàn)擴(kuò)容,并且?guī)椭賱佘浖?到3分鐘內(nèi)完成增加只讀節(jié)點(diǎn)的操作。此外,對(duì)于數(shù)據(jù)庫(kù)存儲(chǔ)容量的擴(kuò)容也能在線完成,而無(wú)需中斷業(yè)務(wù),在很大的程度上解決了硬件性能的瓶頸問(wèn)題。
阿里云POLARDB采用白名單、VPC網(wǎng)絡(luò)、SSL加密、數(shù)據(jù)多副本存儲(chǔ)等全方位手段,幫助百勝軟件在數(shù)據(jù)庫(kù)數(shù)據(jù)訪問(wèn)、存儲(chǔ)、管理等各個(gè)環(huán)節(jié)提供安全保障。POLARDB采用了Active-Active的高可用集群架構(gòu),直接通過(guò)可讀寫(xiě)的主節(jié)點(diǎn)和只讀的Replica節(jié)點(diǎn)之間進(jìn)行Failover切換,與傳統(tǒng)的Active-Standby相比,用同樣成本為百勝帶來(lái)了更好的系統(tǒng)訪問(wèn)性能。
除此之外,阿里云POLARDB能夠100%兼容MySQL,因此借助上云遷移工具DTS,百勝可以將已有數(shù)據(jù)庫(kù)無(wú)需改造直接非常平滑低遷移到POLARDB。與此同時(shí),這也使得百勝軟件的客戶以更低的成本享受到商業(yè)數(shù)據(jù)庫(kù)的性能和可靠性。
使用阿里云數(shù)據(jù)庫(kù)解決方案為百勝帶來(lái)的收益
借助于阿里云的數(shù)據(jù)庫(kù)解決方案,百勝的iSHOP在線零售商城系統(tǒng)即便是在業(yè)務(wù)的高峰時(shí)刻也可以保持在1秒內(nèi)完成交易,有效地保障了各類(lèi)促銷(xiāo)活動(dòng)的順利開(kāi)展。而新的數(shù)據(jù)庫(kù)允許在線上保存90天內(nèi)的交易數(shù)據(jù),而無(wú)需歸檔和清理,也為后續(xù)BI進(jìn)一步分析業(yè)務(wù)變化和趨勢(shì)提供了大量的數(shù)據(jù)。
在世界杯期間,百勝軟件的客戶投放了大量廣告,而借助阿里云POLARDB的強(qiáng)大能力,百勝成功應(yīng)對(duì)了數(shù)億次的總曝光量,以及高并發(fā)的需求。百勝借助阿里云POLARDB強(qiáng)大的計(jì)算能力、Active-Active高可用集群架構(gòu)、極速擴(kuò)展增加只讀實(shí)例的機(jī)制,順利度過(guò)了世界杯活動(dòng)期間的數(shù)次高峰,極大地提升了用戶體驗(yàn),順利完成了為客戶活動(dòng)的保駕護(hù)航。
評(píng)論
查看更多