SHOPLINE x TiDB丨集群成本降低 50%!跨境电商 SHOPLINE 交易、商品管理等核心业务的数据库升级之路

news2024/9/22 4:07:59

导读

本文整理自 TiDB 社区深圳站——SHOPLINE 数据库/TiDB 负责人车佳蔚的演讲《SHOPLINE & TiDB 在跨境电商中的应用实践》。本次分享深入探讨了 SHOPLINE 在跨境电商领域的数字化转型过程中,如何通过 TiDB 技术应对技术挑战,实现降本增效。

本文介绍了 SHOPLINE 在技术选型、服务个性化、用户体验优化以及数据分析应用等方面的实践,并详细说明了 TiDB 6.5 版本升级为公司带来的实际收益。他还探讨了 SHOPLINE 面临的技术痛点,包括核心业务共用 TiDB 集群引发的服务间相互影响,以及数据同步链路的实时性和稳定性问题。通过优化资源分配、增强监控机制和技术升级,SHOPLINE 成功提升了系统性能,降低了运维成本,并增强了全球范围内的数据同步和复制能力。

车佳蔚的演讲《SHOPLINE & TiDB 在跨境电商中的应用实践

演讲嘉宾:车佳蔚,SHOPLINE 数据库/TiDB 负责人

前言

SHOPLINE 是一家提供一站式跨境电商解决方案的公司,专注于帮助企业和个人在全球范围内建立和发展他们的在线业务。SHOPLINE 提供的服务包括但不限于在线商店搭建、多渠道销售、库存管理、支付系统整合、物流跟踪、营销工具以及客户关系管理等。通过这些服务,SHOPLINE 旨在帮助商家轻松管理他们的在线销售和客户关系,同时提供必要的技术支持和数据分析,以优化业务运营和提高转化率。

SHOPLINE 在数字化转型的背景下,面临着一系列技术挑战:

**1. 技术选型:**随着业务量的增长,选择合适的技术栈,尤其是数据库和后端服务,成为一大挑战。需要确保所选技术能够处理大规模数据并支持高并发访问。

**2. 服务个性化:**满足消费者对个性化服务的需求,要求提供定制化的解决方案,以适应不同商家的特定需求。

**3. 用户体验优化:**在多设备环境中,确保用户获得一致且高质量的购物体验,特别是在移动端,这对前端设计和后端服务都提出了更高标准。

**4. 数据分析和应用:**利用数据分析来驱动商业决策,需要我们提供强大的数据分析工具,帮助商家洞察市场趋势和消费者行为。

**5. 成本效益:**在提供高质量服务的同时,还需要考虑成本效益,选择合适的技术解决方案,以维持竞争力和盈利能力。

**6. 市场适应性:**随着全球市场的不断变化,我们需要快速适应不同国家和地区的市场环境,包括法规遵从、支付和物流解决方案的本地化。

TiDB 在 SHOPLINE 业务集群现状

  • **集群规模:**超过 10 套 TiDB 集群
  • **业务覆盖:**交易、商品、数据仓库、搜索、广告等
  • **数据同步链路:**广泛使用 MySQL -> DM -> TiDB -> TiCDC -> Kafka 的同步链路

业务TiDB集群现状

业务痛点与应对策略

在我们的业务场景中,TiDB 集群作为支撑其业务数据库服务的关键技术组件,其性能和稳定性直接影响到整个电商平台的运行效率和用户体验。以下是我们业务 TiDB 集群所面临的痛点的详细描述:

业务TiDB集群的痛点

性能影响

  • **核心业务共用 TiDB 集群:**在我们的业务架构中,多个核心业务如交易、商品管理等共用同一套 TiDB 集群资源。这种设计在资源利用上虽然可以提高效率,但也存在明显的弊端。
  • **服务间互相影响:**当一个业务服务因为高并发请求导致资源占用飙升时,会直接影响到共用同一集群的其他业务服务。例如,在促销或特殊节日期间,交易业务的访问量激增可能会占用大量计算和存储资源,从而影响到商品管理等其他服务的响应速度和稳定性。

数据同步敏感性

  • **数据同步链路的实时性:**SHOPLINE 的业务依赖于实时数据同步链路,从 MySQL 到 DM(TiDB Data Migration),再到 TiDB,最后通过 TiCDC 或 CDC 将变更日志传输到 Kafka 等消息队列系统。这个链路上任何一个环节的延迟都可能导致数据不一致,影响业务决策和用户体验。

  • **业务对实时性的高要求:**例如,在库存管理或实时推荐系统中,数据的实时性直接关系到交易的成功率和用户满意度。任何同步延迟都可能导致显示的库存信息不准确或推荐内容不及时更新。

技术挑战

  • **MySQL DDL 变更期间的 DM 同步延迟:**在数据库维护过程中,对 MySQL 执行 DDL 操作(如添加、删除列或修改表结构)时,DM 工具在同步这些变更时可能会遇到延迟或中断,导致数据同步不及时。

  • **TiKV 和 Kafka 抖动:**TiKV(TiDB 的分布式键值存储)和 Kafka 在高负载或网络问题等情况下可能会出现抖动,这种不稳定性会导致 TiCDC(TiDB Change Data Capture)的 ChangeFeed 任务出现延迟或中断。

  • **CDC 任务的稳定性问题:**CDC 任务负责捕获并传输数据库的变更事件,如果 CDC 服务因为 TiKV 或 Kafka 的抖动而中断,将直接影响到数据同步链路的稳定性和数据的实时性。

应对策略

为了解决上述痛点,我们需要采取一系列措施:

  • **优化资源分配:**通过 TiDB 的资源隔离功能和负载均衡机制,减少不同业务服务之间的相互影响。

  • **增强监控和预警:**实现对数据同步链路的实时监控,及时发现并处理潜在的性能瓶颈和延迟问题。

  • **技术选型和升级:**评估并采用更高效的数据同步工具和技术,比如升级到 TiDB 6.5 版本,以提高系统的稳定性和性能。

  • **容错和自愈机制:**设计和实现更加健壮的容错机制,确保在出现抖动或中断时能够快速恢复服务。

通过这些措施,SHOPLINE 可以在保证业务连续性的同时,提高数据库服务的性能和稳定性,从而为用户提供更加流畅和可靠的电商体验。

故障处理与升级之路

遇到的问题:TiKV oom + TiCDC/CDC 故障

  • **故障现象:**TiKV 宿主 EBS I/O 抖动导致内存飙升触发 OOM(内存溢出),进而导致 TiKV Leader 切换和 CDC 任务卡死
  • **故障原因:**深入分析发现,TiKV 悲观锁在大表订阅 Binlog 失败时,CDC 重试导致 TiKV 内存飙升是根本原因

TiKV oom + Ticdc故障

TiKV oom+Ticdc故障

TiKV oom+Ticdc/cdc故障

TiKV oom+Ticdc/cdc故障

故障应对与恢复

  • **SOP 方案:**制定了标准化的故障恢复流程,确保后续故障能在 30 分钟内恢复
  • **长期方案:**通过测试确认 TiDB v6.5.2 版本已解决上述问题,并且新版本在性能和稳定性上均有提升

TiKV oom+Ticdc/cdc故障

如何解决业务TiDB集群的痛点

TiDB 升级流程与策略

  • **升级准备:**标准化 TiUP topology.yaml 配置文件,沿用 4.0 配置参数,并进行各组件部署规划

  • **测试与验证:**进行功能测试、业务测试、性能压测以及故障演练,确保新版本 TiDB 的稳定性和性能

  • **业务感知差异:**注意 SQL 模式和字符集框架的变化,这可能影响字段结尾包含空格等特殊字符的处理

升级实施

升级准备工作

升级方式

  • **数据同步:**实现集群间数据同步,包括从 TiDB 4.0 到 6.5 以及从 MySQL 到 TiDB 6.5

  • **业务切换:**通过灰度放量和完善回滚策略,确保业务平滑过渡,有条件的情况下实现双写

集群升级迁移总结

集群升级迁移总结

  • **零故障迁移:**在 3 个月内完成了所有 4.0 集群到 6.5 的升级迁移,核心服务按集群独立

  • **TiUP 管理:**根据业务特性定制化 TiDB 参数,提升集群质量,降低故障率

  • **成本效益:**通过升级,TiDB 机器总量下降 50%,单个 TiDB 集群内部节点数减半,跨可用区流量通过数据压缩下降 30%

升级 TiDB 的收益

升级TiDB的收益

  • **质量:**显著提升了集群的稳定性,减少了故障发生
  • **成本:**实现了硬件资源的优化,降低了运维成本
  • **效率:**通过 TiUP 简化了部署和维护流程,提升了新集群交付速度和业务变更的灵活性

TiDB 在 SHOPLINE 的降本增效之路

作为一家迅速扩张的电商平台,SHOPLINE 对数据库的性能和稳定性有着严苛的要求。随着业务量的持续增长,原有 TiDB 4.0 版本在性能提升和运维成本控制方面遭遇了挑战。为了应对这些挑战,SHOPLINE 数据库/TiDB 负责人车佳蔚带领团队实施了从 TiDB 4.0 到 6.5 版本的升级,这一过程中不仅提升了系统性能,还显著降低了运营成本。TiDB 在我们的降本增效之路主要体现在以下几个方面:

**1. 提升性能与优化资源:**TiDB 的高性能特性减少了对硬件资源的依赖,允许我们处理更多的交易和数据,同时降低硬件成本。

**2. 水平扩展能力:**TiDB 支持在线水平扩展,SHOPLINE 可以根据业务需求灵活地增加或减少资源,避免了过度配置或资源不足的问题。

**3. 高可用性减少中断:**TiDB 的高可用性设计减少了系统故障时间,提高了服务的稳定性,减少了因系统故障导致的业务中断和潜在收入损失。

**4. 简化的迁移和升级流程:**TiDB 兼容 MySQL,简化了从旧系统到新数据库的迁移过程,降低了迁移成本和风险。

**5. 实时数据同步:**TiDB 的 CDC 功能支持实时数据同步,使得我们能够快速响应市场变化,提升决策效率。

**6. 降低运维成本:**TiDB 的自动化运维特性减少了对专业 DBA 的依赖,简化了日常的数据库管理工作。

**7. 提升开发效率:**TiDB 支持 SQL 标准,使得开发者能够快速上手并开发应用,加速产品上市时间。

**8. 灵活的部署选项:**SHOPLINE 可以根据自身需求选择公有云、私有云或混合云部署 TiDB,以最经济的方式满足业务需求。

**9. 跨地域数据复制:**TiDB 支持跨地域的数据复制,帮助我们实现全球数据的一致性,同时降低数据传输成本。

**10. 数据压缩技术:**SHOPLINE 通过 TiDB 支持的数据压缩技术,减少了存储需求和网络传输成本。

**11. 社区和生态系统:**利用 TiDB 的开源社区和生态系统,SHOPLINE 能够获取最新的技术更新和最佳实践,持续优化其技术栈。

通过这些方式,TiDB 成为我们在数字化转型过程中降本增效的关键技术选择,帮助我们在保持服务质量的同时,优化成本结构,提高市场竞争力。

总结

SHOPLINE 通过升级至 TiDB 6.5,不仅提升了数据库的性能和稳定性,确保了服务的高可用性,还通过技术创新降低了运维成本。TiDB 的水平扩展能力、实时数据同步、以及对 SQL 标准的兼容性,为我们提供了灵活、高效的解决方案,加速了业务的响应速度和市场适应性。此外,TiDB 的自动化运维和社区支持,进一步降低了我们的技术门槛和长期成本。

在我们未来的技术发展蓝图中,TiDB 凭借其卓越的性能和灵活性,已确立为我们数据库技术选型的优先选择。对于所有与 TiDB 兼容性高的业务场景,我们将毫不犹豫地采用这一前沿技术,以确保我们的平台能够持续提供高性能、高可靠性的服务,满足不断演进的业务需求。通过这种战略决策,SHOPLINE 期望进一步巩固其在跨境电商领域的技术领先地位,并为客户创造更大的价值。

活动回顾

活动回顾二维码

活动现场图片

活动回顾& PPT 下载:https://asktug.com/t/topic/1022494

演讲视频:https://www.bilibili.com/video/BV1Ht421V7zp/

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

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

相关文章

《重生到现代之从零开始的C语言生活》—— 指针3

数组名的理解 在我们使用&arr[0]的方式拿到了数组第一个元素的地址,但是其实,数组名本来就地址,而且是数组首元素的地址 所以数组名就是数组首元素的地址 但是会有两个例外 sizeof(数组名),sizeof中单独放数组名&#xff0c…

『功能项目』移动后的光标显示【04】

我们打开上一篇03的射线双击项目, 本章要做的事情是在PlayerRayNavgation脚本中添加一个移动光标,实现人物在场景中鼠标点击移动后在移动过程中出现移动目标光标的效果。 在unity编辑器中创建一个Plane 重命名为MovementSign 删掉碰撞器 创建一个材质 选…

杰发科技AC7840——CAN通信简介(8)_通过波特率和时钟计算SEG_1/SEG_2/SJW/PRESC

通过公式计算 * 波特率和采样点计算公式:* tSeg1 (S_SEG_1 2); tSeg2 (S_SEG_2 1).* BandRate (SCR_CLK / (S_PRESC 1) / ((S_SEG_1 2) (S_SEG_2 1))), SCR_CLK 为CAN 模块源时钟* SamplePoint (tSeg1 / (tSeg1 tSeg2)). {0x0D, 0x04, 0x04, 0x3B},…

avue-crud 自定义搜索项 插槽

加上 -search 就可以自定义查询项了

制定sbti科学碳目标的主要原则是什么?

制定科学碳目标主要遵循以下原则: 科学性: 基于气候科学:科学碳目标的设定必须依据可靠的气候科学研究成果,以确保目标能够真实反映对气候变化的有效应对。例如,要考虑到将全球平均气温升幅控制在远低于工业化前水平 2…

全国产化服务器:飞腾FT2000+/64核密集计算、显控及存储一体式加固服务器

飞腾FT2000/64核的加固服务器是一款专为高安全性、高可靠性及能在严苛环境下稳定运行而设计的服务器产品。以下是对该服务器的详细介绍: 一、处理器与核心组件 处理器:搭载飞腾FT2000/64核处理器,该处理器基于ARM架构,集成了64个…

C语言--01基础数据类型

1.整型 概念:表达整数类型的数据语法: int a 123; // 定义了一个专门用来存储整数的变量a a 456 ; 需要注意的地方: int 的本意是 integer,即整数的意思int a 代表在内存中开辟一块小区域,称为 a,用来…

Kafka快速入门:Kafka驱动JavaApi的使用

生产者和消费者是Kafka的核心概念之一,它们在客户端被创建和使用,并且包含了许多与Kafka性能和机制相关的配置。虽然Kafka提供的命令行工具能够执行许多基本操作,但它无法实现所有可能的性能优化。相比之下,使用Java API可以充分利…

谁有实际开发权限?

需要查一下,谁有实际开发权限。 正常来说,是按权限查,但是,有权限,不见得能开发,谁开发都得要个sap key。 那切入点就是这个key了,毕竟是问谁有实际开发权限。 直接给结果: 好啦&…

通过POJO生成MySQL的DDL语句

背景 有时候下载的源码没有数据库的DDL语句&#xff0c;需要手动去创建&#xff0c;这就很麻烦了&#xff0c;这时需要一个利器通过POJO对象生成DDL语句&#xff0c;一键生成&#xff0c;直接执行即可。 工程结构示例 pom.xml文件 <?xml version"1.0" encodin…

如何在 Git 中安全撤销提交与更改

文章目录 前言一、Git Reset1. --soft&#xff1a;保留变更在暂存区2. --mixed&#xff08;默认选项&#xff09;&#xff1a;保留变更在工作区3. --hard&#xff1a;彻底丢弃所有变更 二、Git Revert1. 撤销单个提交2. 撤销多个提交3. 撤销合并提交 三、实际例子总结 前言 在…

你知道手机零部件尺寸检测的重要性吗?

手机零部件作为手机制造行业的基础&#xff0c;其品质的优劣直接关系到行业的发展&#xff0c;所以加强手机精密零部件尺寸检测非常重要。如今&#xff0c;手机零部件变得更加精细&#xff0c;对质量的要求也在不断提高&#xff0c;随着生产规模逐渐扩大&#xff0c;传统的检测…

java ssl使用自定义证书

1.证书错误 Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 2.生成客户端证书 openssl x509 -in <(openssl s_client -connect 192.168.11.19:8101 -prexit 2>/dev/null) -ou…

C语言 | Leetcode C语言题解之第355题设计推特

题目&#xff1a; 题解&#xff1a; typedef struct {int tweetId;int userId; } Tweet;typedef struct {int* dict[501];Tweet* tweetList;int tweetListLen; } Twitter;Twitter* twitterCreate() {Twitter* obj malloc(sizeof(Twitter));for (int i 0; i < 501; i) {ob…

【Linux】 gdb-调试器初入门(简单版使用)

&#x1f525;系列文章&#xff1a;《Linux入门》 目录 一、背景 二、什么是GDB &#x1f337;定义 &#x1f337;GDB调试工具---提供的帮助 三、GDB的安装教程-Ubuntu &#x1f337;gdb的安装 四、哪类程序可被调试 &#x1f337;程序的发布方式 &#x1f337;Debug版…

力扣 | 背包dp | 279. 完全平方数、518. 零钱兑换 II、474. 一和零、377. 组合总和 Ⅳ

文章目录 一、279. 完全平方数二、518. 零钱兑换 II三、474. 一和零四、377. 组合总和 Ⅳ 一、279. 完全平方数 LeetCode&#xff1a;279. 完全平方数 朴素想法&#xff1a; 这个题目最简单的想法是&#xff0c;可以用 O ( n n ) O(n\sqrt{}n) O(n ​n)的动态规划解决&#x…

OpenCV几何图像变换(1)映射转换函数convertMaps()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 将图像变换映射从一种表示形式转换为另一种表示形式。 该函数将用于 remap 的映射对从一种表示形式转换为另一种表示形式。以下选项 ((map1.type…

车辆类型检测算法、车辆类型源码及其样本与模型解析

车辆类型检测算法是利用计算机视觉和深度学习技术&#xff0c;对车辆图像进行自动分析和识别&#xff0c;以判断车辆的类型&#xff08;如轿车、SUV、货车等&#xff09;的一种算法。以下是对车辆类型检测算法的详细解析&#xff1a; 一、算法基础 车辆类型检测算法的基础是图…

区间预测|基于长短期记忆网络LSTM分位数单变量时间序列区间预测Matlab程序QRLSTM

区间预测|基于长短期记忆网络LSTM分位数单变量时间序列区间预测Matlab程序QRLSTM 文章目录 前言区间预测|基于长短期记忆网络LSTM分位数单变量时间序列区间预测Matlab程序QRLSTM 一、QRLSTM模型1. 基本原理1.1 LSTM (Long Short-Term Memory)1.2 量化回归&#xff08;Quantile …

移动端GenAI应用的崛起:从市场规模到成功案例分析

随着生成式人工智能&#xff08;GenAI&#xff09;技术的飞速发展&#xff0c;移动应用市场正经历一场前所未有的变革。从图像编辑到聊天机器人&#xff0c;这些基于AI的应用不仅满足了用户日益增长的需求&#xff0c;也为企业带来了巨大的商业机遇。本文将探讨这一领域的最新趋…