当前位置: 首页 > 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

相关文章:

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

在2024年3月20日的首场OceanBase数据库城市行活动中,专注于物流及供应链解决方案的丽迅物流的架构师阳磊,围绕“OB Cloud在丽迅物流的实践”这一主题,进行了精彩的演讲。本文为此次演讲的内容回顾。 在丽迅物流(Lesoon Logistics…...

STM32无源蜂鸣器播放音乐

开发板:野火霸天虎V2 单片机:STM32F407ZGT6 开发软件:MDKSTM32CubeMX 文章目录 前言一、找一篇音乐的简谱二、确定音调三、确定节拍四、使用STM32CubeMX生成初始化代码五、代码分析 前言 本实验使用的是低电平触发的无源蜂鸣器 无源蜂鸣器是…...

【云原生】kubernetes中的认证、权限设置---RBAC授权原理分析与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...

【Python设计模式04】策略模式

策略模式(Strategy Pattern)是一种行为型设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以互相替换。策略模式让算法的变化不会影响使用算法的客户端,使得算法可以独立于客户端的变化而变化。…...

私域用户画像分析:你必须知道的3个关键点!

在互联网时代的变革中,私域流量成为越来越多企业的关注焦点。而了解私域用户画像是建立精准营销策略的关键一步。 今天,就给大家分享私域用户画像分析的三个关键点,让大家都能更好地进行用户画像分析。 1、市场需求 理解市场需求是把握用户…...

【MATLAB源码-第74期】基于matlab的OFDM-IM索引调制系统不同频偏误码率对比,对比OFDM系统。

操作环境: MATLAB 2022a 1、算法描述 OFDM-IM索引调制技术是一种新型的无线通信技术,它将正交频分复用(OFDM)和索引调制(IM)相结合,以提高频谱效率和系统容量。OFDM-IM索引调制技术的基本思想…...

优于其他超导量子比特数千倍!猫态量子比特实现超过十秒的受控比特翻转时间

内容来源:量子前哨(ID:Qforepost) 文丨娴睿/慕一 排版丨沛贤 深度好文:2000字丨8分钟阅读 摘要:量子计算公司Alice & Bob和QUANTIC团队(国立巴黎高等矿业学院PSL分校、巴黎高等师范学院和…...

QtXlsx库编译使用

文章目录 一、前言二、Windows编译使用2.1 用法①:QtXlsx作为Qt的附加模块2.1.1 检验是否安装Perl2.1.2 下载并解压QtXlsx源码2.1.3 MinGW 64-bit安装模块2.1.4 测试 2.2 用法②:直接使用源码 三、Linus编译使用3.1、安装Qt5开发软件包:qtbas…...

LeetCode题练习与总结:二叉树的层序遍历Ⅱ--107

一、题目描述 给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[…...

WIFI国家码设置的影响

记录下工作中关于国家码设置对WIFI的影响,以SKYLAB的SKW99和SDZ202模组为例进行说明。对应到日常,就是我们经常提及手机是“美版”“港版”等,它们的wifi国家码是不同的,各版本在wifi使用中遇到的各种情况与下面所述是吻合的。 现…...

2024年软考高项-信息系统管理师介绍-备考-考试内容-通过攻略

介绍 以下是计算机软件考试的资格设置,本文说的是高级资格中的信息系统项目管理师(简称"高项"),是比较热门和好考的选择,与中级的"系统集成项目管理工程师"有大部分的知识重叠交叉,中级考了"系统集成项…...

Python知识点复习

文章目录 Input & OutputVariables & Data typesPython字符串重复(字符串乘法)字符串和数字连接在一起print时,要强制类型转换int为str用input()得到的用户输入,是str类型,如果要以int形式计算的话&#xff0c…...

GeoScene产品学习视频收集

1、易智瑞运营的极思课堂https://www.geosceneonline.cn/learn/library 2、历年易智瑞技术公开课视频资料 链接:技术公开课-易智瑞信息技术有限公司,GIS/地理信息系统,空间分析-制图-位置智能-地图 3、一些关于GeoScene系列产品和技术操作的视…...

51单片机的最小系统详解

51单片机的最小系统详解 1. 引言 在嵌入式系统中,51单片机被广泛应用于各种小型控制器和嵌入式开发板中。相信很多人都接触过51单片机,但是对于51单片机的最小系统却了解得不够深入。本文将从振荡电路、电源模块、复位电路、LED指示灯和调试接口五个方面详细介绍51单片机的…...

路径规划搜路算法有哪些?

路径规划搜索算法是帮助移动机器人或自动化系统在环境中从起点导航至终点的计算方法。以下是一些常见的路径规划搜索算法: Dijkstra算法:一种经典的最短路径搜索算法,适用于没有负权边的图。 A*算法:一种启发式搜索算法&#xff…...

Hadoop学习之hdfs的操作

Hadoop学习之hdfs的操作 1.将HDFS中的文件复制到本地 package com.shujia.hdfs;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.junit.After; import org.junit.Before; import org.j…...

DBAPI怎么进行数据格式转换

DBAPI如何进行数据格式的转换 假设现在有个API,根据学生id查询学生信息,访问API查看数据格式如下 {"data":[{"name":"Michale","phone_number":null,"id":77,"age":55}],"msg"…...

Oracle JSON 函数详解与实战

Oracle 数据库提供了丰富的 JSON 函数集,使得开发者可以高效地处理 JSON 数据。本文将详细介绍这些函数,包括它们的语法、使用场景、具体示例,以及在实际项目中的应用。 文章目录 JSON_VALUE语法参数说明示例 JSON_QUERY语法示例 JSON_TABLE语…...

C#面:请解释转发与跳转的区别

在C#中,转发(forwarding)和跳转(jumping)是两种不同的控制流程操作。 转发 是指将控制权从一个方法或函数转移到另一个方法或函数。在转发中,程序会将当前的执行状态传递给另一个方法,并在该方…...

Java+IDEA+SpringBoot药物不良反应ADR智能监测系统源码 ADR智能化监测系统源码

JavaIDEASpringBoot药物不良反应ADR智能监测系统源码 ADR智能化监测系统源码 药物不良反应(Adverse Drug Reaction,ADR)是指在使用合格药品时,在正常的用法和用量下出现的与用药目的无关的有害反应。这些反应往往因药物种类、使用…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...

AspectJ 在 Android 中的完整使用指南

一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...

算法:模拟

1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) ​遍历字符串​:通过外层循环逐一检查每个字符。​遇到 ? 时处理​: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: ​与…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...