云下到云上,丽迅物流如何实现数据库降本50% | OceanBase案例

news2024/10/5 10:24:13

在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.coloradmin.cn/o/1705469.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

triton之paged attention

一 原理 图解大模型计算加速系列之:vLLM核心技术PagedAttention原理 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/691038809 二 源码分析 1 测试参数设置 test_paged_attention(num_seqs32,num_heads(64, 64),head_size64,block_size16,dtypetorch.float16,…

java的变量关系~使用和扩展

一、变量的概述 1、什么是变量 白话:变量就是一个装东西的盒子。 通俗:变量是用于存放数据的容器。我们通过变量名 获取数据,甚至数据可以修改。 2、变量在内存中的存储 本质:变量是程序在内存中申请的一块用来存放数据的空间,类似我们酒店的房间&a…

[数据集][目标检测]喝水检测数据集VOC+YOLO格式995张3类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):995 标注数量(xml文件个数):995 标注数量(txt文件个数):995 标注类别…

抖音本地生活服务商入驻指南分享!

当前,各大平台的团购外卖业务持续火爆,并逐渐成为众多创业赛道中的大热门。其中,本地生活服务更是在短时间内杀出重围,成为创业者们的首选。 根据抖音生活服务近日发布的《2023年度数据报告》,2023年,抖音生…

谷歌地图 | Google I/O ‘24 重磅发布助力企业拓展海外市场的新功能!

编者按:本文是 Google I/O 2024 系列的一部分,该系列分享了Google 年度开发者大会上最新的 Google Maps Platform 新闻。 距全球首个 Google Maps API 问世已近 20 年。它引领了网络和移动端地理空间体验的革命。从那时起,Google Maps Platf…

Postgresql源码(132)分布式行锁的原理分析

相关 《Postgresql源码(131)行锁的原理分析》 1 分布式行锁 PG中的行锁在上一片中做了分析《Postgresql源码(131)行锁的原理分析》,本篇对分布式PG(PGXL)中的行锁做一些分析。(版本…

CDGA|像治理空气和水一样来治理数据:构建数字时代的新秩序

在数字时代,数据已经渗透到我们生活的方方面面,成为推动社会发展的重要引擎。然而,随着数据的爆炸式增长,如何有效治理数据,确保其安全、可靠和合规,成为摆在我们面前的一大挑战。为了应对这一挑战&#xf…

期望薪资26K,北京疯狂游戏golang一面

北京疯狂游戏一面 1、自我介绍 2、财务业务中,你做了哪些设计来保证金额数据的准确性?(例如,业务涉及多步骤,某一步出了问题怎么解决) 3、如何解决单个业务直接报错的数据准确性问题 4、分布式场景下&a…

Springboot事务控制中A方法调用B方法@Transactional生效与不生效情况实战总结

介绍 本篇对Springboot事务控制中A方法调用B方法Transactional生效与不生效情况进行实战总结,让容易忘记或者困扰初学者甚至老鸟的开发者,只需要看这一篇文章即可立马找到解决方案,这就是干货的价值。喜欢的朋友别忘记来个一键三连哈&#x…

如何简化不同网间文件摆渡的操作流程,降低IT人员工作量?

为了保护内部核心数据不被泄露,同时有效屏蔽外部网络攻击的风险,企业大多会选择实施网络隔离。将“自己人”与“外人”隔离,具有较强的安全敏感性。有些企业还会在内部网络中进一步划分,比如划分为研发网、办公网、生产网等&#…

【基于 PyTorch 的 Python 深度学习】9 目标检测与语义分割(2)

前言 文章性质:学习笔记 📖 学习资料:吴茂贵《 Python 深度学习基于 PyTorch ( 第 2 版 ) 》【ISBN】978-7-111-71880-2 主要内容:根据学习资料撰写的学习笔记,该篇主要介绍了优化候选框的几种方法。 一、优化候选框的…

Java 面向对象编程(OOP)

面向对象编程(Object-Oriented Programming,OOP)是Java编程语言的核心思想之一。通过OOP,Java提供了一种结构化的编程方式,使代码更易于维护和扩展。 一、类和对象 1. 类的定义 类是对象的蓝图或模板,定…

回收站删掉的照片还能找回来吗?掌握这5个方法,很简单!

“我一不小心在回收站中误删了一些照片,这些照片对我来说是比较重要的,不知道这些还有机会将它们找回来吗?” 当我们不小心将珍贵的照片从计算机的回收站中误删时,那种瞬间的心痛和焦虑难以言表。这些照片可能记录了我们生活中的重…

大数据开发面试题【Kafka篇】

83、介绍下Kafka,Kafka的作用?Kafka的组件?适用场景? kafka是一个高吞吐量、可扩展的分布式消息传递系统,在处理实时流式数据,并能够保证持久性和容错性 可用于数据管道、流分析和数据继承和关键任务应用(发布/订阅模式&#…

雷达基数据绘制成雷达图

x波段雷达基数据绘制成雷达图 1.雷达基数据格式Z_RADR_I_ZR001_20240521020002_O_DOR_YLD2-D_CAP_FMT.bin.bz2 2.基数据读取 python f StandardData(i) # 新版本标准数据radarTime f.scantime # 获取雷达时次date_str radarTime.strftime(%Y-%m-%d %H:%M:%S)date_str d…

盘点10大灵动惊艳小演员❗谁是你的心头好?

盘点国内影视那些惊艳观众的小演员们无疑为影视作品注入了新的活力。以下是10个备受赞誉的小演员: 1.韩昊霖:凭借在《我和我的祖国》和《庆余年》中的出色表现 韩昊霖的演技赢得了观众和业界的广泛认可 他能够准确地把握角色的情感和细节,展…

STM32_USART

1、USART简介 USART,即Universal Synchronous/Asynchronous Receiver/Transmitter,通用同步/异步收发器。USART是STM32内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧时序,从TX引脚发送出去,也可自…

claude3国内API接口对接

众所周知,由于地理位置原因,Claude3不对国内开放,而国内的镜像网站使用又贵的离谱! 因此,团队萌生了一个想法:为什么不创建一个一站式的平台,让用户能够通过单一的接口与多个模型交流呢&#x…

点云工具CloudCompare下载、安装与汉化

一、下载 软件免费开源,所以可以直接在官网下载,官网地址: CloudCompare - Open Source project 进入官网后,点击菜单栏【Download】 选择合适系统进行下载 二、安装 常规软件安装流程即可 三、汉化 打开软件后,…