云下到云上,麗迅物流如何實現數據庫降本50% | OceanBase案例

在2024年3月20日的首場OceanBase數據庫城市行活動中,專注于物流及供應鏈解決方案的麗迅物流的架構師陽磊,圍繞“OB Cloud在麗迅物流的實踐”這一主題,進行了精彩的演講。本文為此次演講的內容回顧。

在麗迅物流(Lesoon Logistics)的上云進程中,他們接觸并評估了國內多款分布式數據庫。經過對實際業務需求的深入考量與驗證,麗迅物流最終選擇了OceanBase的云數據庫(OB Cloud),用以升級其多個關鍵業務系統。截至目前,麗迅物流的倉儲、庫存、財務等多套關鍵業務系統已成功遷移到OB Cloud上,整體數據庫成本降低了50%,且穩定運行已近一年

1711713474

大家好,我是來自麗迅物流的架構師陽磊,非常榮幸參加這次 OceanBase 數據庫城市行活動,接下來我將從數據庫升級必要性、如何升級、收益三大方面為大家分享 OB Cloud 在麗迅物流的應用實踐。

麗迅物流專注于為鞋服、箱包等時尚產業提供倉儲物流服務。目前,麗迅物流業務遍布全國,覆蓋了全國 300 多個城市,3000 多個商圈,共 30000 多家門店;自身全渠道實體云倉 70 余個,倉庫資源 100 萬余平方米、運輸車 1000 余輛。

隨著公司業務的快速增長,自 2021 年起,麗迅物流開始啟動業務系統上云戰略,致力于為客戶提供更穩定、更靈活、更高效的服務。

一、原有架構難以穩定支撐業務增長

在倉儲系統重構之前,麗迅物流的數據庫是部署在 IDC 機房,采用的是 shardingJDBC 這種 SDK 分庫模式,雖然它有去中心化的優勢,但伴隨著麗迅物流的業務增長,在實際應用過程中,發現其仍然存在幾個問題。

1711713577

○ ?應用啟動慢:在應用啟動的時候需要加載元數據,隨著業務表增多會越來越慢;

○ ?性能問題明顯:在跨庫合并查詢分頁的時候,也會存在一些性能問題,比如應用內存拉爆、產生分布式慢事務鎖表;

○ ?版本升級復雜:因為分庫的邏輯寫在應用內部,所以系統上線以后需要伴隨組件升級,難度顯著增大;

○ ?彈性能力弱:原有數據庫架構想要擴容比較麻煩,除了需要新增一組數據庫節點外,應用還要全部改一遍配置后再重新啟動,對連接數耗用也較大。

正是由于以上原因,麗迅物流決定對倉儲系統進行深度重構、升級。一開始,麗迅物流采用了云數據庫+中間件的 Proxy 分庫分表模式。最早使用的是更穩定的云數據庫+中間件 DBLE,經過一段時間的使用一些問題開始暴露出來。

1711713632

○ ?開源版本不穩定:DBLE 開源的組件版本穩定性不足,需要專人對分支版本進行維護與調優,升級困難;

○ ?配置文件結構不合理:數據庫賬號和分片規則配置在一起,導致各環境需要重復配置,運維復雜度增加;

○ ?分布式事務問題:比如全局表不一致、分布式事務鎖表等問題;

○ ?運維成本增加:代理中間件增加,導致運維成本的增加。

○ ?正是在這樣的背景下,麗迅物流將目光瞄準了市場上幾款成熟的分布式數據庫產品,經過多番對比,最終確認了 OB Cloud 云數據庫。

二、倉儲、財務等多個關鍵業務系統上線 OB Cloud

在選型 OB Cloud 的過程中,團隊認為 OB Cloud 云數據庫與麗迅物流業務核心需求匹配度很高,重點考慮了如下因素:

第一,核心語法高兼容。OceanBase 完全自主研發,代碼改造成本低;

第二,穩定可靠。經過海量客戶場景驗證,OceanBase 的安全穩定性有所保障;

第三,支持多基礎設施統一管理。OceanBase 支持客戶多基礎設施業務部署,幫助客戶屏蔽底層基礎設施技術復雜度;

第四,擴展性好、具備多級彈性能力。根據麗迅物流的業務增長要求,支持實現水平垂直擴容;

第五,高性價比。OceanBase 通過先進的數據壓縮技術,可實現 70% 以上的存儲節約,為海量數據的規模化降本提供更出色的選擇;

第六,支持阿里云 DMS 管理。該平臺是麗迅物流團隊日常依賴的管理平臺,使用 OB Cloud 顯著提升運維效率;

第七,支持 Dataworks 抽數到數據平臺 Hologres 做數據分析;

第八,適配 Proxy 分片規則。通過 OceanBase 表組對這些分區進行管理,實現分布式數據動態平衡。

除以上優勢外,在使用 OB Cloud 之前,麗迅物流進行了基準測試。針對 OB Cloud 和 IDC 自建的 MySQL 進行了隨機讀寫的壓力測試,OB Cloud 云數據庫表現優異,給了團隊極大信心。故此,麗迅物流倉儲管理、財務管理、客戶、工單、HR 等多個關鍵業務系統著手上線 OB Cloud。

1711713751

倉儲管理系統(WMS)

WMS 倉儲管理系統是麗迅物流的核心系統之一,在確認了遷移目標以后,團隊內部將 WMS 倉儲管理系統進行了一次深度的重構、升級,逐步將業務系統遷移至 OB Cloud。

通過使用兩個 30 核 180GB 的分布式節點,替換了 5 組 64 核 128GB 的 MySQL 服務器,上線半年后,原來 5TB 的業務數據壓縮到 600GB 左右,業務性能同步提升,至今運行穩定。

財務管理系統(FMS)

麗迅物流的 FMS 財務管理系統有兩組 64 核 128GB 的 MySQL 服務器,團隊通過對其進行數據合并遷移,去掉 ShardingJDBC,遷移到一個 14 核 70GB 的集群上,遷移后,該系統業務量占比大量縮減,只需簡單調整業務代碼,原來一年 2.5TB 的數據可以壓縮到 350GB。

得益于 OB Cloud 天然具備的分布式能力,麗迅物流的業務系統很容易就可以進行水平、垂直擴容,輕松應對業務流量增長,平穩支撐公司業務周轉。

其他:客戶系統、工單系統、HR系統、接口平臺等

除以上核心系統外,公司內部的客戶系統、工單系統、HR 系統、接口平臺,也以綜合形式部署在 14 核 70GB 的 OB Cloud 上,借助 OB Cloud 的集中式架構優勢,充分利用了現有的服務器資源,大大減少了數據庫使用率。

三、降本50%,穩定運行近1年

經過 300 余天的使用,OB Cloud 有如下優勢:

第一,高壓縮比。超高數據壓縮比,有效降低存儲成本 70% - 80%,進一步節約備份時間;

第二,靈活的彈性能力。OB Cloud可以跟隨麗迅物流的業務增長,隨時進行擴縮容,包括存儲也可以支持快速擴縮容,應對物流行業流量峰值;

第三,高性能。上線 OB Cloud 以后,在一些庫存記賬,倉庫RF掃描等高并發場景下,性能提升 20%,對比之前的模式,硬件成本大幅度下降;

第四,成本優勢顯著。在麗迅物流遷移上云的過程中,存儲成本下降 70%;同時通過多租戶共享實例,運維復雜度也下降,DMS 實例數也大大減少;

第五,自我保護能力。ob_query_timeout、ob_trx_timeout 設計非常巧妙,用戶可以根據業務場景對查詢、事務的最大時間進行控制,防止業務被一些異常語句打滿,非常好地保護了數據庫;

第六,SQL 診斷。借助診斷工具可以便利地看到 TopSQL、SlowSQL,對業務瓶頸及時進行調優;

第七,服務技術支持專業高效。從選型到上線到后期的運維,都有OceanBase技術團隊支持,大到解決方案,小到技術細節,都有老師耐心解答,保障系統穩定運行。

上線 OB Cloud 云數據庫之后,麗迅物流獲得了同城雙活、靈活高效、易觀測的數據庫體驗,整體數據庫成本降低 50%,開發和運維效率大大提升。目前,麗迅物流的 TMS 運輸管理系統也正在評估上線 OB Cloud 的過程中,現有幾大關鍵業務系統已攜手 OB Cloud 穩定運行近一年,期待未來更好的合作!

1711713949

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/13492.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/13492.shtml
英文地址,請注明出處:http://en.pswp.cn/web/13492.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

小demo - 列表hide or not (含代碼)

直接上代碼 <!DOCTYPE html> <html><head><style>.menu {width: 220px;height: 800px;border: 1px solid #dddddd;}.item {cursor: pointer;}.menu .header {padding: 10px 5px;background-color: goldenrod;}.menu .content a {display: block;paddi…

線程安全-1 synchronized鎖升級

一.說一下synchronized關鍵字的底層原理 1.synchronized又叫同步鎖&#xff0c;采用互斥的方式使同一時刻只能有一個線程持有鎖。 2.jdk1.6及以前&#xff0c;synchronized底層是用monitor實現的。monitor是jvm級別的對象&#xff0c;由c實現。每一個對象對應一個monitor&…

9.1 Go語言入門(環境篇)

Go語言入門&#xff08;環境篇&#xff09; 目錄一、什么是Go語言二、下載安裝配置Go語言開發環境1. 下載2. 安裝3. 配置環境變量4. 安裝環境驗證 三、 開發工具1. 下載2. 安裝3. 激活4. 配置SDK 四、 創建go工程文件并運行1. 創建go工程2. 示例代碼3. 運行代碼 目錄 一、什么…

軟件開源協議與QT的開源協議介紹

一.常見的六種開源協議 1.BSD協議 BSD協議全稱為“Berkely Software Distribution”&#xff0c;中文譯為“伯克利軟件發行版”。其最早用于伯克利UNIX操作系統上的開源貢獻。 主要特點&#xff1a; 允許修改源碼 允許源碼再發布 允許商業軟件發布和銷售 約束&#xff1…

shell 腳本筆記2

3.env與set區別 env用于查看系統環境變量 set用于查看系統環境變量自定義變量函數 4.常用環境變量 變量名稱含義PATH命令搜索的目錄路徑, 與windows的環境變量PATH功能一樣LANG查詢系統的字符集HISTFILE查詢當前用戶執行命令的歷史列表 Shell變量&#xff1a;自定義變量 目標…

HCIP【VRRP、MSTP、VLAN綜合實驗】

目錄 一、實驗拓撲圖&#xff1a; ?編輯二、實驗要求 三、實驗思路 四、實驗步驟 &#xff08;1&#xff09; eth-trunk技術配置 &#xff08;2&#xff09;vlan 技術配置 &#xff08;3&#xff09;配置SW1、SW2、AR1、ISP的IP地址 &#xff08;4&#xff09;在交換機…

FBB-Frontiers in Bioengineering and Biotechnology

文章目錄 一、期刊簡介二、征稿信息三、期刊表現四、投稿須知五、投稿咨詢 一、期刊簡介 Frontiers in Bioengineering and Biotechnology是專注生物工程和生物技術領域的開放獲取期刊。 研究范圍涵蓋生物材料、生物力學、生物工藝工程、生物安全和生物安保&#xff0c;生物傳…

QT項目-歡樂斗地主游戲

QT項目-歡樂斗地主游戲 游戲概述游戲規則牌型牌型的大小游戲角色游戲規則游戲的勝負游戲計分規則 游戲相關的類介紹卡牌類玩家類窗口類游戲控制類游戲策略類線程類音頻類 游戲主要組件卡牌玩家窗口 游戲控制源碼 游戲概述 游戲規則 不同地域游戲規則可能有些許差異&#xff0c…

MySQL之Schema與數據類型優化(三)

Schema與數據類型優化 BLOB和TEXT類型 BLOB和TEXT都是為存儲很大的數據而設計的字符串數據類型&#xff0c;分別采用二進制和字符方式存儲。 實際上它們分別屬于兩組不同的數據類型家族:字符類型是TINYTEXT&#xff0c;SMALLTEXT,TEXT&#xff0c;MEDIUMTEXT&#xff0c;LONG…

Spring Cloud整合Sentinel

1、引入依賴 鏈接: 點擊查看依賴關系 父pom <spring.cloud.version>Hoxton.SR12</spring.cloud.version> <spring.cloud.alibaba.version>2.2.10-RC1</spring.cloud.alibaba.version>Sentinel應用直接引用starter <dependency><groupId&…

【UE5.1】* 動畫重定向 (讓你的角色可以使用小白人全部動畫)

前言 這里以小白人動畫重定向給商城資產“Adventure Character”中的角色為例&#xff0c;闡述如何使用UE5.1進行動畫重定向。 步驟 1. 創建一個IK綁定 這里選擇小白人的骨骼網格體 這里命名為“IKRig_Mannequin” 2. 再新建一個IK綁定&#xff0c;這里使用你要替換給的角色…

MyBatis入門——MyBatis XML配置文件(3)

目錄 一、配置連接字符串和MyBatis 二、寫持久層代碼 1、添加 mapper 接口 2、添加 USerInfoXmlMapper.xml 3、測試類代碼 三、增刪改查操作 1、增&#xff08;Insert&#xff09; 返回自增 id 2、刪&#xff08;Delete&#xff09; 3、改&#xff08;update&#xf…

軟考--試題六--中介者模式(Mediator)

中介者模式(Meditor) 意圖 用一個中介對象來封裝一系列的對象交互。中介者使各對象不需要顯式地相互引用&#xff0c;從而使其耦合松散&#xff0c;而且可以獨立地改變它們之間的交互 結構 適用性 1、一組對象以定義良好但是復雜的方式進行通信&#xff0c;產生的相互依賴關…

民國漫畫雜志《時代漫畫》第17期.PDF

時代漫畫17.PDF: https://url03.ctfile.com/f/1779803-1248612629-85326d?p9586 (訪問密碼: 9586) 《時代漫畫》的雜志在1934年誕生了&#xff0c;截止1937年6月戰爭來臨被迫停刊共發行了39期。 ps:資源來源網絡&#xff01;

力扣HOT100 - 1143. 最長公共子序列

解題思路&#xff1a; 動態規劃 class Solution {public int longestCommonSubsequence(String text1, String text2) {int m text1.length(), n text2.length();int[][] dp new int[m 1][n 1];for (int i 1; i < m; i) {char c1 text1.charAt(i - 1);for (int j 1…

深度學習之基于YoloV5的動物識別系統

歡迎大家點贊、收藏、關注、評論啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代碼。 文章目錄 一項目簡介 二、功能三、系統四. 總結 一項目簡介 一、項目背景與目標 在生態研究、動物保護、以及畜牧業等多個領域&#xff0c;對動物進行準確、高效的識別都具有重…

形態學操作:腐蝕、膨脹、開閉運算、頂帽底帽變換、形態學梯度區別與聯系

一、總述相關概念 二、相關問題 1.形態學操作中的腐蝕和膨脹對圖像有哪些影響&#xff1f; 形態學操作中的腐蝕和膨脹是兩種常見的圖像處理技術&#xff0c;它們通過對圖像進行局部區域的像素值替換來實現對圖像形狀的修改。 腐蝕操作通常用于去除圖像中的噪聲和細小的細節&a…

單鏈表oj

練習 1. 刪除val節點 oj鏈接 這道題最先想出來的方法肯定是在遍歷鏈表的同時刪除等于val的節點&#xff0c;我們用第二中思路:不等于val的節點尾插&#xff0c;讓后返回新節點。代碼如下&#xff1a; struct ListNode* removeElements(struct ListNode* head, int val) {str…

XML基礎知識

1. 常見配置文件類型 properties文件,例如druid連接池就是使用properties文件作為配置文件 XML文件,例如Tomcat就是使用XML文件作為配置文件 YAML文件,例如SpringBoot就是使用YAML作為配置文件 json文件,通常用來做文件傳輸&#xff0c;也可以用來做前端或者移動端的配置文件…

軟考高級-信息系統項目管理師案例題選擇題做題總結

1.不應該只會建立變更和配置管理的規則&#xff0c;應該建立變更控制流程 2.變更的影響不應該只由工程師評估 3.沒有對變更和修改進行記錄 4.變更完成后&#xff0c;客戶沒有對變更進行驗證 5.變更沒有通知相關人員 6.變更沒有和配置管理關聯 7.項目變更管理的工作流程&#xf…