TiDB x 中国电信翼支付 | 「效率提升 5 倍」,TiDB 在电信翼支付金融核心场景的应用

本文主要是介绍TiDB x 中国电信翼支付 | 「效率提升 5 倍」,TiDB 在电信翼支付金融核心场景的应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

「我们已经用起来了」,是我们最喜欢听到的话,简简单单几个字的背后代表着沉甸甸的信任和托付。从今天开始,我们将通过**「相信开放的力量」**系列深度案例分享,从业务的角度,看看一个数据库为各行业用户带来的业务价值。 本篇文章将介绍 TiDB 助力中国电信翼支付金融核心场景的故事。

餐饮娱乐 、投资理财、商户服务…
让大家尽情享受安全、便捷的金融新生活。

中国电信翼支付(以下简称:翼支付)成立于 2011 年 3 月,是中国电信旗下的运营支付和互联网金融的业务品牌,是中国人民银行核准的第三方支付机构,是中国证监会核准的基金支付结算机构,支持各类线上线下民生支付应用,一直致力于为个人、企业提供“安全、便捷、时尚”的支付解决方案。

2019 年翼支付月活用户 5000 万,每月 2.3 亿笔交易,年交易金额超 1.75 万亿。目前累计接入华润、永辉、苏宁小店、物美、中百等超 800 万家线下商户门店及苏宁易购、京东、天猫、饿了么、中粮我买网、美团等 170 余家线上电商。

客户收益

面对业务快速增长及激烈的市场竞争压力,翼支付技术团队选择 TiDB,对业务系统尤其是支付系统数据库进行改造升级。经过不懈努力,反洗钱系统效率提升 5 倍,对账平台性能提升 2 倍,而处理时间减少 ⅔ !目前,翼支付业务层以及核心平台层都采用 TiDB 提供服务。

我们对系统的改造升级,不仅达到了监管部门的要求,也让财务部门运营的处理能效得到了很大的提升,还大大降低了技术团队的工作复杂度。新系统上线以后,我们对 TiDB 的表现比较满意。
——翼支付基础架构技术团队

  • 风控监管:反洗钱系统超越监管要求,实测结果显示:整体批处理性能提高了 3 倍以上,时间也缩短至原来的 ⅓,平台整体有效处理能力提升到 5 倍以上。

  • 伙伴结算:对账平台处理时间减少 ⅔ ,性能提高 2 倍,就经常使用的三种形式来看:

  1. 银联支付宝,以前使用 MySQL 用时两分钟,现在使用 TiDB 只要 40 秒,性能提高了 300%;

  2. 银联无卡支付,使用 MySQL 用时 3-5 分钟,TiDB 用时 1-2 分钟,性能提升 200% - 300%;

  3. 微信支付,MySQL 用时 3 分钟,TiDB 约 1 分钟,性能提升 300%。

  • 个人账单:有效改善使用体验,增加了用户活跃度,解决了原有分库分表在容量、存储周期、查询效率等方面问题:
  1. 现在使用 TiDB 单表数据量近 100 亿,原来 MyCAT 只能按照月来分表,单表存储容量上限为 1 亿;

  2. 存储周期可以借助 TiDB 线性扩展能力延长至 3 - 5 年,甚至更长,原来 MySQL 只能存储半年;

  3. QPS 提升 50 %,延迟降低 20-30%,成功应对 525 大促。

面临挑战

优异成绩的得来,向来都不是一帆风顺。在项目启动之初,双方团队就面临了不小的难题。

反洗钱风控 时间紧 任务重

随着《中华人民共和国反洗钱法》修改工作正式启动,监管部门对处理时间的要求是 T+1 (次日)的时间内必须要完成可疑的规则和风险评级的计算要求。

之前跑批单的任务时间大概都在几百分钟,每天整体任务处理的时间都会在 15 小时甚至更长,随着数据量越来越大,业务系统面临了越来越大的风险,所以反洗钱系统在性能上也提出了比较强的要求:

  • 满足 SQL 2003 的标准;

  • 多表关联,能够查询数据集 1 千万以下,响应时间 5 秒以内;

  • 数据文件批量加载,20G 大小,大概不能超过 30 分钟;

  • 亿万数据中要删除 50 万数据,响应时间要在 10 秒之内;

  • 3 亿数据中删除两千万,也要有 10 秒之内的响应时间;

  • 3 亿数据量更新 100 万,响应时间 5 分钟左右。

交易激增 要扩展 提性能

与此同时,翼支付团队还需要解决两个问题:第一,现有数据库架构是否支撑未来业务的成长,包括功能、可扩展性、稳定性、服务支持能力等方面的需求;第二,性能始终是难题,在现有架构上提升一点都非常困难,何况数倍提升的要求。

解决方法

经过双方团队对业务系统的深入分析和研判,做出了三步走的策略,首先评估现状考虑数据库架构的调整方法,接下来在营销业务进行试点,然后聚焦解决核心支付业务的问题。

基于业务场景 建立数据库评估模型

在进行了大量的测试之后,最终确定了翼支付基于业务场景构建数据库选型评估模型,双方经过仔细研判后决定:对于新采用的项目,在关系型数据库的选型上,不再考虑使用 Oracle,按照容量阀、性能阀、大表的数量、分区规则、 HTAP 能力,以及拓扑结构这几个纬度进行容量筛选。得出结论在翼支付的业务场景中对于容量大于 3T,QPS 大于 20000,大表数量比较多,而且分片规则很难定义,以及一些实时分析场景,优先选择使用 TiDB 。

场景试点 提升用户体验

个人账单系统在翼支付 APP 客户端内,是为个人用户提供所有交易的账单数据的管理、查询功能,以及数据的分类和统计功能,以便用户能更好的掌握自己通过翼支付所做的所有交易。根据评估模型,也是属于典型的 TiDB 适用场景,团队按照应用切换原则,选用了 TiDB 的数据同步工具在短时间内进行了应用切换和迁移工作。

切入业务 提升 TB 级支付效能

同样基于评估模型,团队选择了对账平台系统及反洗钱系统进行核心攻关。

对账平台系统涉及到多张表,单表的规模超 10 亿,整体数据规模超过 8T+,业务应用的逻辑相对复杂,数据并发量中等。改造后,核心支付系统产生交易流水,通过文件形式传输到文件解析服务,文件解析服务将数据的解析结果保存到分布式数据库,对账系统基于分布式数据库完成对账的流程,同时向 WEB 端提供查询页面和查询服务。

在反洗钱系统方面,随着监控数据的数量和类型发生许多变化,反洗钱业务需求数据日益增大,监控的范围不断的扩大。团队按照 TiDB 的形式进行架构升级,一方面通过(OGG for MySQL client ),将数据从原来的 Oracle 同步到 TiDB;另一方面使用大数据的发布功能,从 Hive 直接去同步到 TiDB。

挺进核心 布局未来

下一阶段翼支付将会扩大 TiDB 的应用范围,将业务发展快、规模大的核心链路的系统,逐步往 TiDB 迁移 ,而这需要做几方面工作,一方面是外部环境变化,未来可能在数据库上也会做很多的限制,必须提前做一些准备;另一方面是考虑性能规划可以满足未来业务不断增长的需求。

目前的核心库都会有上亿数据量的规模,单库总数据量 10T 以上,核心业务要求停机时间非常短或不能停,这就对数据库提出了较高的要求,同时需要在开发模式上进行更新,包括:采用 Oracle 和 TiDB 共存的双模式开发,支持灰度或者双写的切换过程,提升业务校验能力,进行模块和批次进度的设计。另外,在运维管理上也有更高的要求,包括窗口的切换操作的过程、回退的预案等。

为何选择 TiDB

从中国电信翼支付的项目不难看出,我们就是看重了 PingCAP 团队对于核心业务的理解,以及对分布式数据库架构的设计及改善能力。
——翼支付基础架构技术团队

降风险 促业务

对于运营商尤其是支付业务来说,风控是第一位的,只有规避的风险,才能保障业务运行;而在此之上,要适应于业务发展及场景要求,更要为业务发展做好规划,预设技术路线及预留发展空间,这对技术团队的数据库建构设计能力及数据处理效能的改善能力提出了较高要求,毫无疑问,TiDB 及其团队值得客户信赖!

与客户同行,相信开放的力量

每次数据库架构改善与落地,无论是 TB 级还是 PB 级,都需要付出努力,但这也值得每一个企业去实践。在当下这个时代,不管企业的规模如何,都要学会借助开源的力量,避免去重复的造轮子。

每一个看似轻松的背后都有不为人知的努力,每一个看似光鲜亮丽的背后,都有不为人知的付出。分布式数据库建设之路道阻且长,TiDB 愿与翼支付及每个客户一起,携手并肩把事情做好。

这篇关于TiDB x 中国电信翼支付 | 「效率提升 5 倍」,TiDB 在电信翼支付金融核心场景的应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/884334

相关文章

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

java中VO PO DTO POJO BO DO对象的应用场景及使用方式

《java中VOPODTOPOJOBODO对象的应用场景及使用方式》文章介绍了Java开发中常用的几种对象类型及其应用场景,包括VO、PO、DTO、POJO、BO和DO等,并通过示例说明了它... 目录Java中VO PO DTO POJO BO DO对象的应用VO (View Object) - 视图对象

Python中异常类型ValueError使用方法与场景

《Python中异常类型ValueError使用方法与场景》:本文主要介绍Python中的ValueError异常类型,它在处理不合适的值时抛出,并提供如何有效使用ValueError的建议,文中... 目录前言什么是 ValueError?什么时候会用到 ValueError?场景 1: 转换数据类型场景

Go信号处理如何优雅地关闭你的应用

《Go信号处理如何优雅地关闭你的应用》Go中的优雅关闭机制使得在应用程序接收到终止信号时,能够进行平滑的资源清理,通过使用context来管理goroutine的生命周期,结合signal... 目录1. 什么是信号处理?2. 如何优雅地关闭 Go 应用?3. 代码实现3.1 基本的信号捕获和优雅关闭3.2

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,