【QCon】精华内容上线92%,全面覆盖“人工智能+”的典型案例!>>> 了解详情
写点什么

分布式数据库是金融机构数字化转型的最佳路径

  • 2020-09-17
  • 本文字数:3931 字

    阅读完需:约 13 分钟

分布式数据库是金融机构数字化转型的最佳路径

支付宝在全球有十几亿用户,他们可以同时进行可靠、稳定、高效的支付交易,这背后离不开一个重要的秘密武器——OceanBase。今天我很荣幸向大家介绍 OceanBase 的发展过程、产品特点,以及在保险行业的最佳实践。

分布式数据库 OceanBase 的迭代

OceanBase 数据库立项于 2010 年,第一个客户是淘宝收藏夹。2013 年,OceanBase 开始了对 SQL 的支持。2014 年,OceanBase 开始支持网商银行的所有业务,成为了全球首个应用在金融核心业务系统的分布式关系数据库。从 2014 年到 2016 年,支付宝全部的交易系统和核心账务系统都跑在 OceanBase 之上。 多年来全世界十几亿用户在支付宝上发生的所有交易都是由 OceanBase 来承载,始终稳若磐石。


2017 年,我们开始向更多的外部客户输出我们的技术,我们帮助南京银行打造了“鑫云+”互联网金融业务核心。OceanBase 服务过的这些场景里既包括新兴的互联网金融核心业务、传统的金融核心业务,也包括对传统数据库的替换、对 MySQL 的替换,都非常成功。


2019 年, OceanBase 参加了世界数据库范围内最权威的 TPC-C 认证测试,我们取得了 6088 万 tpmC 的成绩,是第二名传统数据库公司甲骨文的两倍。TPC-C 绝对不是一个简单的跑分测试,实际上,它是要求被测试的对象必须满足数据库的 ACID 四个事务特征才能够进行的测试。


2020 年,我们又一次参加了 TPC-C 测试, 达到了 7.07 亿 tpmC,跑出了接近去年 12 倍的成绩,再次问鼎 TPC-C 榜首。今年 6 月份 OceanBase 正式独立成公司,我们立志于成为世界领先的企业级数据技术解决方案提供商。

数据库形态演进

金融业的核心业务系统,包括保险行业的核心业务系统仍旧大规模使用传统集中式数据库。这种方案带来了两个问题,一是 集中式数据库造价非常高 ,来自于两方面,一方面是软件 License 很贵;另一方面是硬件很贵,因为它必须使用高端硬件,比如 IBM 的大机、EMC 的高端存储,这些都是非常昂贵的,时间长了再大的企业也很难承受;二是 扩展性非常不好 ,传统集中式数据库都是基于共享存储(shared-storage)的方式做横向扩展,当面临关键业务系统发展需要不断扩容的时候,这种方案有心无力,难以做有效的支撑。


对于上面这种方案业界提了一种补丁方案,十几年前曾有人提出既然传统集中式数据库很贵,那么在单机开源的基础上加一个语法兼容,这样就解决了它昂贵的问题。但是发展到今天,我们在金融领域的核心系统还没有看到广泛使用这种方案。原因很简单,金融业核心系统使用传统集中式数据库主要不是因为它们在语法上的完善和优秀,根本原因在于它们的稳定可靠,而这个补丁方案做不到这些,同时这个方案也没有解决扩展性的问题。


说到扩展性同样是在十几年以前,最早在互联网企业中提出了这么一种方案,叫做 分库分表 ,一个典型的例子就是在多台单机的 MySQL 上,用 Proxy 把 MySQL 单机集成为 MySQL 集群,提供很好的算力。这种方案同样具有很大的问题,当计算发生在单个 MySQL 机器内部的时候一切很好,但是一旦用户的负载跨越 MySQL 单机边界的时候,你可能会发现分库分表系统的表现并不尽如人意。具体来说,在全局事务、数据强一致性、负载均衡以及复杂 SQL 方面都不能很好的支持,所以这种方案的使用场景非常受限。截止到今天,在银行、保险、券商行业的核心业务系统中依然没有广泛使用过这种方案。


那么到底是否存在这样一种数据库系统,它既可以提供传统集中式数据库的高可靠性,又成本可控,同时扩展性良好?在这个基础之上还能够满足事务的 ACID、具备强一致性、复杂 SQL 的处理能力? 答案是有,而且可以更好,那就是 OceanBase。

OceanBase 的三大独特价值

首先,OceanBase 是一款完全自主研发的分布式关系数据库, 代码是百分之百自研的,包括 SQL 引擎、存储引擎都是我们的工程师自己一行一行代码写出来的。这一点很重要,它意味着当你的数据库出现问题的时候,我们的工程师不需要求助开源社区,我们自己就可以兜底,这对于要求稳定,要求可靠,要求有可预期性的金融领域的核心业务系统是一个刚需,这一点 OceanBase 可以充分提供。


第二, OceanBase 是全世界唯一一款经过长时间复杂金融场景验证的原生分布式数据库。 数据库其实是一个非常复杂的系统,它的复杂度甚至不亚于操作系统,对它的各种复杂应用场景的测试不是一个简单的测试程序可以穷尽的。目前,可能唯一有效的方法就是在实践中找到足够复杂、足够多的场景对数据库进行反复的使用,使用到最后没有问题为止大家才会信任它。我们非常高兴的告诉大家,OceanBase 做到了。


第三,OceanBase 数据库是全世界范围内唯一一款基于普通的 X86 云服务器,在 TPC-C 领域获得第一名的原生分布式数据库。 登顶 TPC-C 榜单意味着 OceanBase 不但可以提供世界级的性能,而且可以提供单机数据库一样的完整体验,这一点意味着用户可以像使用单机数据库一样使用 OceanBase。

OceanBase 核心特性

在 OceanBase 数据库中,我们通过“五高一多”的特点定义了分布式数据库的领先标准。


高可用


我们通过 Paxos 协议和多副本技术,可以提供很好的高可用性,当出现灾难的时候我们可以做到 RPO=0,RTO<30 秒,这完全可以满足企业的容灾需求。同时由于我们使用的是 Paxos 协议, Paxos 协议是支持日志空洞的,这就带来一个好处,当在网络出现波动的时候,我们可以给到更好的性能保证。


OceanBase 的高可用性,是完全在通用 X86 服务器和普通硬件上提供出来的,没有使用任何高端硬件,所以我们的成本会更低一些。


高扩展


在实际生产系统中单个 OceanBase 集群内的服务器可以达到 100 台以上。而且 OceanBase 具有很好的线性扩展比。高扩展性还体现在扩容时的自动负载均衡,这意味着当 DBA 需要扩容的时候,所做的只是增加一台机器到集群里,接下来,我们的 OceanBase 管理系统会自动的根据系统的负载情况,把数据迁移到新加的机器上。整个扩容缩容过程中,业务没有感知。


高性能


我们采用了很多先进的技术来提高数据库的性能。比如 LSM Tree、无锁结构、消除磁盘的随机写等等,这些技术帮助我们充分使用硬件的能力,再辅以高扩展性,我们就可以提供一个世界级性能的 OceanBase 集群。


在实际的生产系统里,我们可以在峰值的时候提供 6100 万次每秒,单表最大容量可以到 3200 亿行。和高性能伴随的是低成本,因为我们采用了 LSM Tree 结构,所以当数据落盘的时候是更有组织的,可以做到 1:3 的压缩比。


高透明


我们实现了不少关键技术,比如全局一致性快照、全局索引、自动事务两阶段提交。使用 OceanBase 数据库,应用就像使用一台单机数据库一样,不需要做针对分布式数据库的特别感知和修改。


高兼容


我们在一套 OceanBase 集群上同时为您提供两套生态,一套是 Oracle 生态,一套是 MySQL 生态,有效地降低业务迁移改造的成本。同时我们和国内主流的操作系统、芯片也都做了互认的支持,可以有效满足技术供应链安全的需求。


多租户


多租户就是在一个 OceanBase 集群上,可以建立很多个租户,每个租户对应一个 Oracle 实例或者是 MySQL 实例。可以用这个特性实现业务大集中,把以前全国一省一套的传统集中式数据库都集中在一个 OceanBase 数据库集群那里。也可以做不同种类的小业务的集中,之前几十个小的业务现在都集中在一个 OceanBase 集群里统一管理,这个特性不但可以有效利用集群资源,更可以有效降低 DBA 的运维成本。

OceanBase 产品定位与形态

OceanBase 可以提供拥有世界级性能的 OLTP 引擎,同时也提供一个非常优秀的 OLAP 引擎,这意味着辅以刚才提到的多租户功能,您可以在一个 OceanBase 的集群里创建不同的实例,有的专门用于交易,有的专门用于分析,当然也可以创建一个大的实例,既做交易又做分析。OceanBase 目前真正做到了一套 HTAP 引擎,它能够同时支持交易和分析型业务。


OceanBase 的容灾架构,既支持经典的主备容灾方式,同时也支持基于 Paxos 协议的容灾方式,我们支持同机房三副本,也支持同城三机房,甚至是两地三中心,三地五中心,这些不同的容灾级别可以完全满足您的容灾诉求。


关于部署模式,如果您希望和阿里云其他的优秀产品,比如和金融级分布式中间件 SOFA 或者对象云存储 OSS 一起使用,那么 OceanBase 可以在阿里云的专有云上为您输出。如果您只想使用 OceanBase,我们也可以以一个纯 License 的方式提供给您,就在您的服务器上安装我们的软件,一样可以获得一个高可用、高扩展、高性能的集群。如果您希望只是购买一个公有云的服务,您可以在阿里云的公有云上购买一个 OceanBase 的 RDS。这些不同选项可以无缝适配您各种不同的需求。

OceanBase 在保险业的实践

OceanBase 在保险业的最佳实践,一个很好的案例就是人保健康险。 如果不熟悉的朋友可以打开您的手机支付宝,在上面搜“好医保”就可以看到人保健康险的产品。人保健康利用了金融级分布式数据库 OceanBase 和金融级分布式中间件 SOFAStack 解决了高并发保单处理能力速度慢的问题,目前每日平均出单量在 15 万左右。


自 2018 年 4 月 11 日人保健康险好医保产品成功上线后,截止到目前,好医保已成为支付宝网红保险产品。OceanBase 上线中国人保健康以后,取得了显著的收益:


  • 处理能力提升了上千倍,并可根据业务情况动态扩容

  • 2018 款好医保住院医疗保险,每天 1 万单的日结文件,处理速度从以前的 4 小时缩短至 6 分钟

  • 新产品上线时间缩短 80%以上,从原来的数周缩短至数天

  • 采用多种协议转换和标准化对接流程,使外部渠道接入效率提升 6 倍,支持第三方业务快速拓展


谢谢大家听完我的汇报,期待着未来我们可以用 OceanBase 数据库更好地服务于保险行业,和各位好朋友一起打造面向未来的保险业的核心业务系统。


作者介绍


郭援非,蚂蚁集团高级解决方案架构师


本文转载自公众号支付宝技术(ID:Ant-Techfin)。


原文链接


分布式数据库是金融机构数字化转型的最佳路径


公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2020-09-17 10:051479

评论

发布
暂无评论
发现更多内容

Java工程师丨面试必会进程线程问答

陈橘又青

Java 面试 9月月更

分享一套自己制作的Nestjs实战教程

pincman

node.js typescript nestjs

远程TS全栈学习+远程全职工作+远程高质量外包=3R教室

pincman

node.js typescript react.js 远程工作 nestjs

上车上车,快速搞懂Redis 过期策略和内存淘汰策略

知识浅谈

redis 过期策略 9月月更

分布式技术难学?谷歌大神首发纯手撸ZK+Dubbo笔记,网友看完直呼NB

收到请回复

Java zookeeper 架构 分布式 语言 & 开发

高颜值!程序员专属浏览器

Jackpop

易观千帆 | 2022年7月宁波市手机银行应用活跃人数榜单

易观分析

手机银行 宁波

软件复杂性的来源与应对

源字节1号

软件开发 前端开发 后端开发 小程序开发

云原生(三十四) | Kubernetes篇之平台存储系统实战

Lansonli

云原生 9月月更

Java进阶(三)Java安全通信:HTTPS与SSL应用配置

No Silver Bullet

https SSL证书 9月月更

设计模式的艺术 第十二章装饰设计模式练习(开发一个数据加密模块,可以对字符串进行加密。最简单的加密算法通过对字母移位来实现,同时提供了稍复杂的逆向输出加密和更高级的求模加密。用户先用最简单的算法加密,如果觉得不够,可以使用其他算法进行二次加密和三次加密)

代廉洁

设计模式的艺术

二维容器进行图的DFS搜索和BFS搜索-C++STL模板

清风莫追

c++ 算法 9月日更 9月月更

中国智能网联汽车信息安全分析2022案例征集

易观分析

汽车 案例征集 智联网

leetcode 21. Merge Two Sorted Lists 合并两个有序链表(简单)

okokabcd

LeetCode 数据结构与算法

费时3个月啃烂了这份Redis技术笔记,我成功上岸进了字节

收到请回复

redis 架构 语言 & 开发 Java core redis 底层原理

为什么这么多品牌迫切想要改变Logo?

Jackpop

[教你做小游戏] 只用几行原生JS,写一个函数,播放音效、播放BGM、切换BGM

HullQin

CSS JavaScript html 前端 9月月更

SpringCloud 配置中心(Nacos)的简单使用

nacos SpringCloud 配置中心 9月月更

一名中年码农转型成远程工作及远程全栈教学创业者的故事

pincman

node.js typescript react.js 远程工作 nestjs

数据治理的内核:元数据管理

Taylor

数据治理 数字化 元数据 元数据管理 元数据管理平台

【数独 2】候选数法解数独谜题-挖掘更深的信息-C++实现

清风莫追

9月月更

易观之星 | “2022年度用户推荐数字应用”投票通道开启

易观分析

易观

Java进阶(二)文件读操作

No Silver Bullet

Java 9月月更 文件读操作

什么是 SAP Business Function

Jerry Wang

SAP abap Netweaver 业务流程驱动 9月月更

【Web前端】怎样用记事本写一个简单的网页-html

清风莫追

9月月更

线上问题如何复盘

老张

线上故障 问题复盘

阿里顶配版 Spring 全家桶高级笔记+300道硬核面试题,跪着啃完了

钟奕礼

Java 编程 程序员 架构 java面试

程序人生 | 编程的上帝视角应该怎么去找

小明Java问道之路

程序人生 编程思维 如何学习 9月月更 计算机思维

计网复习一,计算机网络原理概述

前端小刘不怕牛牛

计算机网络 计算机基础 HTTP 9月月更

iview提供的控件tree

zxhtom

9月月更

中小企业集成AI人工智能的窘境

felix

人工智能 中小企业 开放应用模型

分布式数据库是金融机构数字化转型的最佳路径_数据库_郭援非_InfoQ精选文章