当前位置: 首页 > news >正文

云下到云上,丽迅物流如何实现数据库降本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

相关文章:

  • 数字营销:以大数据作引擎,推动企业全面数字化升级
  • FFmpeg编解码的那些事(2)
  • 包和final
  • HaloDB 的 Oracle 兼容模式
  • 一个月速刷leetcodeHOT100 day13 二叉树结构 以及相关简单题
  • 解决vue版本不一致导致不能正常编译
  • 学习笔记——动态路由协议——OSPF(OSPF基本术语)
  • Sylvester矩阵、子结式、辗转相除法的三者关系(第二部分)
  • 【leetcode1944--队列中可以看到的人数】
  • Linux 系统配置修改时间时区
  • OrangePi AIpro 快速上手初体验——接口、样例和目标检测
  • 5.29_Java程序流程控制
  • Linux网络编程: udp,tcp协议原理
  • 如何解压忘记了密码的加密zip压缩包?这两个方法收藏好!
  • 把自己的垃圾代码发布到官方中央仓库
  • [LeetCode] Wiggle Sort
  • [译]如何构建服务器端web组件,为何要构建?
  • 【Leetcode】104. 二叉树的最大深度
  • angular组件开发
  • docker-consul
  • java第三方包学习之lombok
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • React+TypeScript入门
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 第2章 网络文档
  • 多线程事务回滚
  • 讲清楚之javascript作用域
  • 近期前端发展计划
  • 前端面试题总结
  • 区块链将重新定义世界
  • 山寨一个 Promise
  • 一个JAVA程序员成长之路分享
  • 7行Python代码的人脸识别
  • Semaphore
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​Spring Boot 分片上传文件
  • ​卜东波研究员:高观点下的少儿计算思维
  • ‌‌雅诗兰黛、‌‌兰蔻等美妆大品牌的营销策略是什么?
  • ‌内网穿透技术‌总结
  • #define与typedef区别
  • #include
  • #传输# #传输数据判断#
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (四)Controller接口控制器详解(三)
  • (四)Linux Shell编程——输入输出重定向
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (转)ORM
  • .NET Micro Framework初体验(二)
  • .NET 服务 ServiceController