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