写点什么

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

  • 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)。


原文链接


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


2020-09-17 10:051662

评论

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

谈谈控制感(13):为什么是旁观者清?

史方远

读书笔记 个人成长 心理学 随笔杂谈

洞悉MySQL底层架构:游走在缓冲与磁盘之间

帅旋

MySQL 数据库 MVCC

LeetCode | 2. Reverse Integer 整数反转

Puran

Python C# 算法 LeetCode arts

游戏夜读 | 如何管理公司?

game1night

Java 走过的创新25年

田晓旭

Java25周年

分布式事务 - 理论模型

Java收录阁

分布式事务

【vue-openlayers】弹窗

德育处主任

html Vue 大前端 openlayers ol

Java 最新的JDK14.0.1调试成功

程李文华

centos7分区命令parted的用法(大于2T)

唯爱

ARTS 01 - 技术人的理想主义

jerry.mei

算法 Vue 练习 ARTS 打卡计划 ARTS活动

ARTS打卡week#1

对方正在输入…

ARTS 打卡计划

架构演变之路:为何要搞微服务架构?

帅旋

Kubernetes 微服务 dubbo SpringCloud

有的线程它死了,于是它变成一道面试题。

why技术

源码分析 面试 jdk源码 线程池

微信小程序开发 | 如何在小程序中使用自定义 icon 图标

彭宏豪95

微信小程序 学习 编程 大前端 IT

深入理解JVM内存管理 - 堆和栈

Skye

堆栈 深入理解JVM VM参数

LeetCode | 1. Two Sum 两数之和

Puran

Python C# 算法 LeetCode arts

程序员的晚餐 | 6 月 2 日 红烧鸡爪的味道

清远

美食

路漫漫其修远兮

无心水

坚持ARTS-week2

王钰淇

ARTS 打卡计划

工作的创新能力

punkboy

产品 重新理解创业 产品经理 创新突破 创新

什么时候去面试

escray

重学 Java 设计模式:实战适配器模式

小傅哥

设计模式 小傅哥 重构 代码质量 代码坏味道

SpringBatch系列入门之Tasklet

稻草鸟人

spring SpringBatch 批处理

初识 LeetCode

Puran

LeetCode arts

【译】5 个你需要知道的 JavaScript 小技巧

零和幺

Java 大前端 技巧

程序员都惧怕的故障域

松花皮蛋me

Java 问题处理

【大厂面试02期】Redis过期key是怎么样清理的?

NotFound9

Java 数据库 redis 架构 后端

一文入门JVM虚拟机

Simon郎

深入理解JVM

同一浏览器只允许登录一个账号

AR7

Vue 大前端

带你学够浪:Go语言基础系列 - 8分钟学控制流语句

程序员柠檬

后台开发 Go 语言

【Sentry搭建之 docker-compose】

卓丁

DevOps Docker-compose CI/CD sentry

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