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