云集电商:数据库的分布式升级实践|OceanBase案例

电商行业对数据库有哪些需求

云集电商作为一家传统电商企业,业务涵盖了美妆个护、服饰、水果生鲜、健康保健等多个领域,在创立四年后在纳斯达克上市(股票代码:YJ)。与京东、淘宝、拼多多等电商平台不同,云集电商采取的是基于社群的社交驱动会员电商模式,主要服务于B端客户。

云集电商通过云集(包括App和小程序)以及云集健康(小程序)两大平台为会员提供服务。相较于其他互联网企业系统,电商企业的一大显著特点是频繁举办大促和秒杀活动,这些活动带来的瞬时高并发流量和高QPS对服务资源提出了极高的要求。此外,云集在选品推送、运营分析、财务数据分析及报表分析等方面,也依赖于大数据计算与分析技术。

因此,我们对数据库的需求首先是稳定性、高可用,其次是应对大促、秒杀场景的扩缩容能力,以及一些通用特性如高性能、高兼容、多中心部署、低成本、安全。此外,架构随着业务的发展逐渐变得复杂后,数据需要流转到大数据侧进行分析、计算后再传输回来,虽然数据算不上庞大,但过程也需要维护。我们希望能有一款支持HTAP场景的数据库来降低数据处理与分析的复杂性

云集电商应用分布式数据库选型历程

在云集电商成立初期,毫不犹豫使用了世界上应用最广泛的数据库之一的MySQL,所有业务都搭载在MySQL之上。不久,疯狂增长的交易量使财务数据、对账数据迅速膨胀,而MySQL的性能、扩展能力与应对批量数量处理的能力有限,经过我们DBA团队和开发团队的一致决定,需要引入分布式数据库来支撑业务需求。

由于云集电商是在阿里云上,所以选取了阿里云生态中的HybridDB,基本能够满足当时的业务需求。后续因为战略调整,从阿里云迁移至腾讯云,但腾讯云上没有可用的分布式数据库,所以经过调研后选用TiDB数据库作为归档库,以及在边缘业务中应用。这时已完全弃用了HybridDB,业务主要是MySQL,同时对帐数据使用TiDB。

从2020年到2023年,一些众所周知的原因,云集电商的业务量逐渐下降,成本压力成为我们首要解决的问题。彼时,我们使用腾讯云的CDB,业务微服务的架构导致MySQL实例1000+ ,CVM高峰期的实例接近3000个。针对每一个微服务的数据库实例,会有基础的一主一从,另外还会有一个用户从库,一个系统对应三个数据库实例。

同时,业务数据库通过Flink、Canal等组件输出到大数据进行统计分析,生成T+0、T+1的报表。再将分析数据同步回业务数据库,供用户查询,形成数据的循环。

复杂的业务架构与多实例带来的运营成本,使云集电商难堪重负,亟需优化。

由于在使用TIDB的过程中有一些问题,比如扩容后性能提升达不到预期,而且一些参数调整需要重启集群,有时候个别节点会启动失败。因此,出于稳定性考虑,我们没有将TiDB用于核心业务,因此在成本优化之际,便舍弃了这个产品。

在使用TiDB的时候,我认识了一个朋友,这个朋友在后来去了OceanBase任职,机缘巧合下我们就了解了OceanBase,发现其特性更符合我们的战略需求。

  • 稳定性强,可持续响应服务,保证整体业务的稳定。
  • 兼容性高,简化新技术和架构的应用,降低开发难度,减少学习成本。
  • 低成本,极致的数据压缩带来存储成本优化。
  • 高可用,多地多中心部署,容灾有保障。
  • 不过度优化,避免因过度优化而降低业务的波动能力。
  • OceanBase 的吞吐量和生态系统的支持良好。
  • 一体化的HTAP 能力能够满足业务高峰交易场景和分析场景的业务需求,简化原有架构,。
  • 水平扩展方便,资源利用灵活,同时解决大促场景中MySQL扩容切换导致的业务中断问题。

上文讲到我们最看重数据库的稳定性,OceanBase的稳定性业界闻名,我们就初步试用起来。

云集数据库迁移与成效分析

目前,我们已经将30+个业务迁移到了OceanBase数据库,包括社群系统、供应链、农场项目及其他业务,并且在规划迁移更核心的业务场景,订单系统,预计2025 年迁移完成。下文以其中的农场项目为例讲述迁移过程及收益,并分享其中的经验供大家参考。 

农场项目共有6台主实例,数据量13TB左右,由于是在线业务,在迁移时要求不影响线上用户的使用,最好无感知,同时,我们也希望不需要开发人员改动代码就能实现平滑迁移。另外,考虑到我们的业务生态、中间件如Canal,Flink CDC,还要求新的数据库即OceanBase能够兼容或支持。

明确的需求可以使迁移评估更加高效,基于上述要求,我们做了五项评估,分别是:

  • 中间件收集及版本检查,用于判断新数据库是否支持;
  • 检查帐号及连接IP等,收集业务访问,以便根据业务情况制定合适的迁移策略;
  • 查询新数据库中是否有定义函数,存储过程,触发器及字符集等,对于我们而言是禁用
    的,因为容易引发问题;
  • 迁移前处理慢SQL,进行资源评估,预估MySQL数据量迁移后的占用情况;
  • 评估总体兼容性和性能。

我们选择OceanBase的迁移工具OMS完成数据迁移和同步。OMS支持多种数据源,可以在线不停服进行迁移,性能也不错,还会进行多重数据校验,其原理如下图所示。

1730342004

而具体的迁移步骤分为六步。第一步即上文提到的业务检查。第二步做迁移准备,包括慢SQL及数据归档、字符集检查、资源评估、迁移测试链路等,其中如果发现了不支持的字符集,需要在迁移前转换,以保证迁移过程的稳定性。第三步是配置迁移任务,比如创建帐号、配置数据源、配置迁移链路、反向增量同步,然后开始第四步的数据同步,并监视此过程。第五步是,确认迁移结果,选择一个流量较少的时间段将业务重启,切换数据源。

在迁移完成后可能会涉及收尾工作,也就是第六步。对于云集而言,为了减少迁移的复杂性,从MySQL到OceanBase按表迁移,然后再做合库合表,因此,迁移完成后我们涉及同步连接关闭、资源释放、业务改造等收尾工作。在此过程中,我们也发现OMS 每次同步的表数量有限,大约3000个表。也遇到了一点挫折,在使用OBLogProxy时内存泄露,官方人员介入后修复了该问题。

总结

目前,我们已经迁移30+业务,40+MySQL实例,我们最看重的成本优化效果超出预期,服务器成本降低约45%,数据压缩率提高43%。在此之前某些业务的数据量已经突破了单机容量的上线,迁移到OceanBase后,受益于其极致的压缩率,这个问题也顺利解决。

在不久的将来,业务全部迁移完成后,得益于OceanBase的诸多特性,我们预估效果或者说期望达到的效果大概是:

  • 一体化的HTAP 的运用使得数据不再需要流转(ETL),直接当成数据仓库使用,极大地降低架构复杂度。
  • 多中心的部署方案直接满足等保需求,并借助多中心部署方案满足多活能力

对于一个企业而言,数据库替换就像心脏移植,充满未知与风险,因此,我们需要做好充足的产品选型与调研工作。对于云集电商而言,从MySQL到HybridDB,到在边缘业务试用TiDB,再到如今将大量业务迁移到OceanBase,经历了些许坎坷。希望本文的分享能为同行朋友提供参考意义,也欢迎同行朋友们留言交流。


OceanBase 云数据库现已支持 365天 免费试用,现在申请,体验分布式数据库带来全新体验吧 ~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/953407.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Kibana操作ES基础

废话少说,开干!!!!!!!!!!!!截图更清晰,复制在下面 #库操作#创建索引【相当于数据库的库】 PUT /first_index#获…

AI大模型赋能!移远通信打造具有“超能力”的AI智能玩具解决方案

随着无线通信、先进算法以及AI大模型等前沿技术的蓬勃发展,许多玩具已经从简单的互动设备进化为集教育、陪伴和娱乐功能于一身的AI智能玩具,在儿童群体中日渐风靡。不仅如此,因其能提供满满的情绪价值,在成年人和老年人市场中也展…

从 SQL 语句到数据库操作

1. SQL 语句分类 数据定义语言 DDL : 用于定义或修改数据库中的结构,如:创建、修改、删除数据库对象。create、drop alter 数据操作语言 DML : 用于添加、删除、更新数据库中的数据。select、insert alter、drop 数据控制语言 D…

解锁 JMeter 的 ForEach Controller 高效测试秘籍

各位小伙伴们,今天咱就来唠唠 JMeter 里超厉害的 “宝藏工具”——ForEach Controller,它可是能帮咱们在性能测试的江湖里 “大杀四方” 哦! 一、ForEach Controller 是啥 “神器” 想象一下,你手头有一串神秘钥匙,每…

【已解决】【记录】2AI大模型web UI使用tips 本地

docker desktop使用 互动 如果需要发送网页链接,就在链接上加上【#】号 如果要上传文件就点击这个➕号 中文回复 命令它只用中文回复,在右上角打开【对话高级设置】 输入提示词(提示词使用英文会更好) Must reply to the us…

MySQL批量修改数据表编码及字符集为utf8mb4

​​​​​​MySQL批量修改数据表编码及字符集为utf8mb4 utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符。 采用utf8mb4编码的好处是:存储与获取数据的时候,不用再考虑表情字符的编码与解码问题。 更改数据库…

基于Spring Boot的房屋租赁系统源码(java+vue+mysql+文档)

项目简介 房屋租赁系统实现了以下功能: 基于Spring Boot的房屋租赁系统的主要使用者管理员可登录系统后台,登录后可对系统进行全面管理,包括个人中心、公告信息管理、租客管理、户主管理、房屋信息管理、看房申请管理、租赁合同管理、收租信…

Leetcode - 147双周赛

目录 一、3407. 子字符串匹配模式二、3408. 设计任务管理器三、3409. 最长相邻绝对差递减子序列四、3410. 删除所有值为某个元素后的最大子数组和 一、3407. 子字符串匹配模式 题目链接 字符串匹配问题,把字符串 p 分成两段 、,i 是 ’ * ’ 的下标&am…

数据预测2025年AI面试市场增幅超500%!

近年来,随着人工智能技术的迅猛发展,AI在各行各业的应用逐渐广泛,其中企业招聘领域也不例外。最新的数据显示,2025年AI面试市场将迎来前所未有的增长,预计增幅将超过500%。这一预测不仅揭示了AI技术在招聘领域的应用潜…

浅谈云计算08 | 基本云架构

浅谈基本云架构 一、负载分布架构二、资源池架构三、动态可扩展架构四、弹性资源容量架构五、服务负载均衡架构六、云爆发架构七、弹性磁盘供给架构八、冗余存储架构 在当今数字化时代,云计算已成为企业发展的核心驱动力,而其背后的一系列关键架构则是支…

【专题】2025年节日营销趋势洞察报告汇总PDF洞察(附原数据表)

原文链接: https://tecdat.cn/?p38813 在当今复杂多变且竞争激烈的消费市场环境下,节日营销已成为企业获取市场份额、提升品牌影响力的关键战略时机。我们深知深入洞察节日营销趋势对于企业决策的重要性。 本报告汇总基于对 2024 年多个关键消费节点及…

【Linux系统】权限位(mode bits)

这张图是使用结构体 struct stat 中的 st_mode 字段时画的,获取表示文件的类型和权限,它是典型的 POSIX 系统调用(如 stat() 和 fstat())返回的 struct stat 结构的一部分,用于描述文件的元数据。 在 Linux 和 Unix 系…

无源器件-电容

电容器件的参数 基本概念由中学大学物理或电路分析内容获得,此处不做过多分析。 电容的产量占全球电子元器件产品的40%以上。 单位:法拉 F;1F10^6uF;电路中常见的104电容就是10*10^4pF100nF0.1uF C为电容,Rp为绝缘电…

Go语言之路————go环境的初始化

Go语言之路————go环境的初始化 前言一、Go的安装二、环境配置三、初始化一个新项目四、常用的一些指令 前言 我是一名多年Java开发人员,因为工作需要现在要学习go语言,Go语言之路是一个系列,记录着我从0开始接触Go,到后面能正…

数据结构与算法之链表: LeetCode 234. 回文链表 (Ts版)

回文链表 https://leetcode.cn/problems/palindrome-linked-list/description/ 描述 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表如果是,返回 true ;否则,返回 false 示例 1 输入:head [1,2,2,1]…

Hive4.0.1集群安装部署(Hadoop版本为3.3.6)(详细教程)

前置环境 ​​​Linux环境Zookeeper集群安装(详细教程)-CSDN博客 Hadoop HA高可用集群3.3.6搭建(详细教程)-CSDN博客 MySQL8.0.40离线安装(详细教程)_mysql 8.0.40 ftp-CSDN博客 Hadoop3.3.6官网下载链接地…

Windows安装ES单机版设置密码

下载ES ES下载链接 我用的是7.17.26 启动前配置 解压之后打开D:\software\elasticsearch-7.17.26\bin\elasticsearch-env.bat 在elasticsearch-env.bat文件中修改jdk的路径 修改前 修改内容 if defined ES_JAVA_HOME (set JAVA"D:\software\elasticsearch-7.17.26\…

Wireshark抓包教程(2024最新版个人笔记)

改内容是个人的学习笔记 Wireshark抓包教程(2024最新版)_哔哩哔哩_bilibili 该课程笔记1-16 wireshark基础 什么是抓包工具:用来抓取数据包的一个软件 wireshark的功能:用来网络故障排查;用来学习网络技术 wireshark下…

云平台一键部署【Video-Background-Removal】视频换背景,无任何限制,随意换

Video-Background-Removal 是一款革命性的视频背景替换工具,旨在让用户轻松实现视频背景的快速更换。无论你是专业创作者还是普通用户,这款软件都能让你在几秒钟内改变背景,完全消除限制,随心所欲,随时随地想换就换&am…

2025年,华为认证HCIA、HCIP、HCIE 该如何选择?

眼看都到 2025 年啦,华为认证还吃香不? 把这问题摆在每个网络工程师跟前,答案可没那么容易说清楚。 到底考不考它值当不值当,重点在于您自己的职业规划,还有对行业走向的领会。 2025 年华为认证仍然值得一考&#…