从 Oracle 到 TiDB,国有大行打造本地生活 APP 新体验

news2024/10/6 20:25:11

导读

本文介绍了某国有大行推出的本地生活服务类 APP 在数字时代的创新应用实践。该 APP 利用金融科技和互联网平台模式,打造“金融+非金融”的线上生态服务平台,满足了用户多样化的生活需求。为应对用户增长和数据量增加带来的挑战,该 APP 决定采用新一代 HTAP 数据库 TiDB 替换原系统中的 Oracle RAC,以提升整个系统的处理能力、扩展能力和服务能力。 文章介绍了 TiDB 带来的优势和应用价值,包括灵活的扩展能力、无需分库分表、金融级高可用能力等,帮助该平台提升了用户体验,增强了业务竞争力。

创新的本地生活服务平台

数字时代,用户行为线上化、场景化趋势日益明显。为积极响应国家扩大内需、拉动消费的号召,某国有大行顺应时代潮流,于 2021 年推出了一款本地生活服务类 APP。该 APP 依托金融科技手段与互联网平台模式,创新打造“金融 + 非金融”的线上生态服务平台,满足用户多样化的生活需求。这款本地生活 APP 自上线以来, 注册用户数已达到千万级别 ,成为了各地政府拉动本地消费的密切合作伙伴,平台特色包括:

  • 丰富的生活场景服务 :涵盖美食、外卖、充值、打车、电影演出、缴费、家装生活、车生活等多个方面,满足用户衣食住行娱等全方位需求。
  • 开放共享的合作模式 :为商家提供快速入驻通道,以线上平台推广提升商家曝光度,助力商家品牌宣传、活动集客和流量变现。
  • 免佣的银行系交易平台 :为用户提供安全可靠的交易环境,并依托银行资源提供更多优惠福利。

数据架构面临新的挑战

这款本地生活 APP 的业务功能涵盖基础服务、门面服务、抢券服务、订单服务、商户管理服务等多个方面,具体职能如下:

  • 门面服务 :提供商家信息展示、店铺导航、评价管理等功能;
  • 抢券 服务 :提供优惠券上架、发放、核销全流程管理服务,前端服务按渠道分成 4 个抢券通道,采用业务垂直分库和集中库存储的方式来提升性能和可靠性;
  • 订单服务 :提供订单生成、维护、查询、评价和推送等功能,应用层采用分表设计来应对大流量的冲击;
  • 订单历史查询服务 :提供针对各类订单按照用户、日期、交易渠道等多维度的查询功能;
  • 商户管理服务 :提供商品类目及标签管理,商品上下架,KA 品牌商户维护等功能。

图 1:改造前基于分库分表的数据架构

该生活 APP 上线后迅速推广,日活跃用户达到数百万,日订单量突破百万。 目前,存量表中数据记录行数超过亿行,20 多张表每天新增数据超过千万条。面对如此迅猛的业务发展和数据量增长,原有的技术架构(主要采用集中式数据库以及抢券服务的分库分表的技术架构)已经无法满足业务需求,无法做到对应用透明的快速弹性扩展。因此,需要找到一种新的技术架构或产品来解决现有架构的痛点:

  • 处理能力受限 :集中式数据库受限于单机服务器资源限制,无法满足快速发展的生活类业务场景对数据容量和并发处理能力的需求。
  • 高可用能力不足 :集中式数据库存在单点故障的风险,故障转移时会影响业务的连续性。
  • 业务处理能力下降 :订单业务随着客户交易量的增加,部分业务需要在多个数据库或数据表中进行,增加了查询的时间和成本。当历史库也无法满足存储容量要求时,需要考虑继续拆分。

为了解决上述问题,抢券业务采用分库分表模式来提升并发处理能力,但当业务发生变更时,需要对所有分库进行修改和调整,增加了业务变更的难度和风险。DBA 需要对多个数据库或数据表进行管理和维护,进而增加了系统故障排查和维护的难度。

使用原生分布式数据库 TiDB 替换 Oracle

为缓解生活 APP 业务的高 TPS 并发访问以及海量数据带来的性能压力,经过对市场主流分布式数据库的调研,并结合自身业务场景实践,最终决定采用新一代 HTAP 数据库 TiDB 替换原系统中的 Oracle RAC,从而提升整个系统的处理能力、扩展能力和服务能力。TiDB 分布式数据库带来的优势主要体现在以下几个方面:

图 2:改造后的分布式数据架构

  • 灵活的扩展能力 :快速横向扩展可以满足业务持续发展带来的数据量增长问题;
  • 无需分库分表 :原生分布式架构解决了分库分表原设计带来的痛点;
  • 金融级高可用能力 :Multi-Raft 自选主和 TiCDC 提供主备数据的实时复制,提供了 7*24 不间断的服务保障;
  • 节约存储空间 :TiKV 采用 LSM Tree 存储引擎,通过编码压缩大幅减少存量、增量数据所需磁盘空间;
  • 快速响应业务的要求 :分区表动态裁剪配合领域缓存设计满足大表对高并发、高性能查询的要求,Online Schema Change 保证在线 DDL 的快速执行。

图 3:分布式数据库 TiDB 高可用部署示意图

应用价值

该生活服务类 APP 是国有大行重点推出的线上生态平台,面向海量用户提供多样化的生活服务。 为了满足高并发场景下高性能、高可用及大容量存储等处理能力,平台采用了分布式数据库 TiDB。 TiDB 凭借弹性扩展、实时 HTAP 等优势,帮助平台提升了用户体验, 增强了业务竞争力。

  • 快速释放业务能力 :TiDB 具有弹性扩展和自动负载均衡能力,可以根据业务需求进行灵活扩容,简化应用开发,让应用更聚焦于业务功能的实现,企业无需考虑客户及交易量增加可能带来的架构改变。在抢券业务场景下,对现有集群进行动态扩容就能满足接入渠道及流量增长时对处理能力的要求。
  • 提供实时数据处理 :TiDB 具有行列存互相隔离的能力,可以在不影响在线业务运行的情况下进行实时的数据分析,利用这个特性可以实现历史订单更多维度的实时分析能力,从而丰富客户画像及开展个性化的用户营销活动。
  • 降低架构复杂度,有效节约成本 :避免随着业务增长进行复杂的分库分表处理,从而简化应用开发与运维工作,实现了高效降低成本的目标。

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

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

相关文章

【网络编程】Servlet的前后端练习 | 表白墙 | 前后端交互 | 提交消息 | 获取消息

文章目录 一、Servlet的前后端练习1.表白墙服务器要实现的逻辑:1.获取消息 :2.提交消息:完整前端代码:完整后端代码: 一、Servlet的前后端练习 1.表白墙 服务器要实现的逻辑: 1.页面加载时,网…

47-Qt控件详解:Buttons Containers1

一 QPushButton (命令按钮) #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QPushButton>//引入QPushButton类对应的头文件class MainWindow : public QMainWindow {Q_OBJECTpublic:MainWindow(QWidget *parent nullptr);~MainWind…

YOLOv8独家原创改进: AKConv(可改变核卷积)

1.AKConv原理介绍 地址:2311.11587 (arxiv.org) 摘要:基于卷积运算的神经网络在深度学习领域取得了令人瞩目的成果,但标准卷积运算存在两个固有的缺陷。一方面,卷积运算仅限于局部窗口,无法捕获其他位置的信息, 并且它的采样形状是固定的。 另一方面,卷积核的大小固定为…

vue3土味情话pinia可以持久保存再次修改App样式

我是不是你最疼爱的人-失去爱的城市 <template><div class"talk"><button click"getLoveTalk">土味情话</button><ul><li v-for"talk in talkStore.talkList" :key"talk.id">{{ talk.title }}<…

HarmonyOS开发案例:【UIAbility内和UIAbility间页面的跳转】

UIAbility内和UIAbility间页面的跳转&#xff08;ArkTS&#xff09; 介绍 基于Stage模型下的UIAbility开发&#xff0c;实现UIAbility内和UIAbility间页面的跳转。包含如下功能&#xff1a; UIAbility内页面的跳转。跳转到指定UIAbility的首页。跳转到指定UIAbility的指定页…

AtCoder Regular Contest 177 D. Earthquakes(概率 单调栈)

题目 D - Earthquakes 思路来源 官方题解 题解 对于不存在连锁反应的区间&#xff0c;每个区间独立处理&#xff0c;最后求个乘积 对于每个区间&#xff0c;相邻的两个杆子距离都小于H&#xff0c; 意味着没倒的区间是个连续的区间&#xff0c;假设要算i的概率 一定是第i…

软考144-下午题-【试题三】:UML图-类图、用例图

一、分值与目标 题型&#xff1a; 问题一~问题三&#xff08;扩展/UML——>设计模式&#xff09; 二、UML基础知识回顾 2-1、关系 UML中有四种关系&#xff1a;依赖、关联、泛化、实现。 1、关联 关联是一种结构关系&#xff0c;它描述了一组链&#xff0c;链是对象之间的…

Uniapp 自定义弹窗

布局 <view><view v-if"show" class"popup"><view class"popup-box"><view>支付方式:{{way}}</view><view>停车费用:{{money}}</view><view class"btn-box"><view class"ca…

修改el-checkbox样式

一定要在最外层&#xff1b; //未选中框/deep/ .el-checkbox__inner{border-color: #0862a3;}//选中框/deep/ .el-checkbox__input.is-checked .el-checkbox__inner{background-color: #0862a3;border-color: #0862a3;}//未选中框时右侧文字/deep/ .el-checkbox__label{}//选中…

虚拟化技术 挂载iSCSI网络存储器

一、实验内容 挂载iSCSI网络存储器到ESXi主机 二、实验主要仪器设备及材料 安装有64位Windows操作系统的台式电脑或笔记本电脑&#xff0c;建议4C8G或以上配置已安装vSphere Client 三、实验步骤 1、挂载iSCSI网络存储器到ESXi主机 配置ESXi主机的虚拟网络 ESXi识别出三块…

【补充】图神经网络前传——DeepWalk

论文阅读 论文&#xff1a;https://arxiv.org/pdf/1403.6652 参考&#xff1a;【论文逐句精读】DeepWalk&#xff0c;随机游走实现图向量嵌入&#xff0c;自然语言处理与图的首次融合_随机游走图嵌入-CSDN博客 abstract DeepWalk是干什么的&#xff1a;在一个网络中学习顶点…

039——解决室内不能使用GPS问题

目录 引入 GUI整改 client添加GPS分析 完善服务器网络通讯部分代码 添加GPS的BSW层 GPS操作部分代码&#xff08;相当于驱动&#xff09; 效果展示 项目管理操作 引入 最近在写论文加上出去玩了一圈所以停更了一段时间。上次咱们GPS有个室内用不了的问题&#xff0c;咱…

Ubuntu 24 换国内源及原理 (阿里源 清华源 中科大源 网易源)

备份原文件 sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak 编辑源文件 sudo gedit /etc/apt/sources.list.d/ubuntu.sources 粘贴到文本&#xff08;其中一个即可&#xff09;&#xff1a; &#xff08;阿里源&#xff09…

与 Apollo 共创生态:Apollo 七周年大会带我体会自动驾驶技术的发展

前言 自动驾驶技术作为当今科技领域的热门话题&#xff0c;吸引着无数开发者和企业的目光。而在这个风起云涌的行业中&#xff0c;Apollo开放平台作为自动驾驶领域的领军者之一&#xff0c;扮演着不可或缺的角色。七年前&#xff0c;当Apollo开放平台刚刚起步时&#xff0c;也…

C语言(指针)5

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸各位能阅读我的文章&#xff0c;诚请评论指点&#xff0c;关注收藏&#xff0c;欢迎欢迎~~ &#x1f4a5;个人主页&#xff1a;小羊在奋斗 &#x1f4a5;所属专栏&#xff1a;C语言 本系列文章为个人学习笔记&#x…

等保一体机能过三级等保吗?过等保无需再买安全设备如何做到?

等保一体机能过三级等保吗&#xff1f;过等保无需再买安全设备如何做到&#xff1f; 全云在线 2024-03-28 12:08 广东 尽管等保建设的标准是统一的&#xff0c;但由于不同行业和用户规模的差异&#xff0c;建设方案呈现出多样化的特点。 虽然重点行业过等保现象确实已经十分…

【35分钟掌握金融风控策略25】定额策略实战2

目录 基于收入和负债的定额策略 确定托底额度和盖帽额度 确定基础额度 基于客户风险评级确定风险系数 计算最终授信额度 确定授信有效期 基于收入和负债的定额策略 在实际生产中&#xff0c;客户的收入和负债数据大多无法直接获得&#xff0c;对于个人的收入和负债数据&…

中小型客户过等保,选择比努力重要!

国内谈网络安全&#xff0c;等保是绕不过去的话题。 作为国家网络安全保障的基本制度、基本策略、基本方法&#xff0c;等保经过十几年发展&#xff0c;其基本概念、相关标准已经深入人心&#xff0c;市面上各类成熟的等保方案让用户应接不暇&#xff0c;挑花了眼。 网络安全…

数据结构之排序(上)

片头 嗨&#xff0c;小伙伴们&#xff0c;大家好&#xff01;我们今天来学习数据结构之排序&#xff08;上&#xff09;&#xff0c;今天我们先讲一讲3个排序&#xff0c;分别是直接插入排序、冒泡排序以及希尔排序。 1. 排序的概念及其应用 1.1 排序的概念 排序&#xff1a…

R语言数据分析案例-股票可视化分析

一、数据整合的对象 # Loading necessary libraries library(readxl) library(dplyr)# Reading the data from Excel files data_1 <- read_excel("云南白药.xlsx") data_2 <- read_excel("冰山.xlsx")二、数据整合的代码 # Reading the data from…