蚂蚁架构师郭援非:分布式数据库是金融机构数字化转型的最佳路径

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 2020年8月26-28日,在中科软科技举办的中国财险科技应用高峰论坛上,蚂蚁集团高级解决方案架构师郭援非发表了《OceanBase分布式关系数据库助力保险业务创新》的主题演讲内容整理

​2020年8月26-28日,在中科软科技举办的中国财险科技应用高峰论坛上,蚂蚁集团高级解决方案架构师郭援非发表了《OceanBase分布式关系数据库助力保险业务创新》的主题演讲,为大家分享了蚂蚁集团企业级分布式关系数据库OceanBase的发展历程、产品价值,以及在保险行业的最佳实践应用。

以下为演讲整理:

26CA4DDD-F2FF-48d4-805B-95795AA4E1EE.png

各位朋友,下午好!

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

分布式数据库OceanBase的迭代

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

中科软保险峰会OB演讲-2.jpg

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)的方式做横向扩展,当面临关键业务系统发展需要不断扩容的时候,这种方案有心无力,难以做有效的支撑。

4.png

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

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

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

OceanBase的三大独特价值

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

自主研发2.jpg

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

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

OceanBase核心特性

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

3.png

高可用

我们通过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引擎,它能够同时支持交易和分析型业务。

5.png

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数据库更好地服务于保险行业,和各位好朋友一起打造面向未来的保险业的核心业务系统。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
5月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
969 3
|
9月前
|
人工智能 安全 Java
智慧工地源码,Java语言开发,微服务架构,支持分布式和集群部署,多端覆盖
智慧工地是“互联网+建筑工地”的创新模式,基于物联网、移动互联网、BIM、大数据、人工智能等技术,实现对施工现场人员、设备、材料、安全等环节的智能化管理。其解决方案涵盖数据大屏、移动APP和PC管理端,采用高性能Java微服务架构,支持分布式与集群部署,结合Redis、消息队列等技术确保系统稳定高效。通过大数据驱动决策、物联网实时监测预警及AI智能视频监控,消除数据孤岛,提升项目可控性与安全性。智慧工地提供专家级远程管理服务,助力施工质量和安全管理升级,同时依托可扩展平台、多端应用和丰富设备接口,满足多样化需求,推动建筑行业数字化转型。
339 5
|
4月前
|
消息中间件 缓存 监控
中间件架构设计与实践:构建高性能分布式系统的核心基石
摘要 本文系统探讨了中间件技术及其在分布式系统中的核心价值。作者首先定义了中间件作为连接系统组件的&quot;神经网络&quot;,强调其在数据传输、系统稳定性和扩展性中的关键作用。随后详细分类了中间件体系,包括通信中间件(如RabbitMQ/Kafka)、数据中间件(如Redis/MyCAT)等类型。文章重点剖析了消息中间件的实现机制,通过Spring Boot代码示例展示了消息生产者的完整实现,涵盖消息ID生成、持久化、批量发送及重试机制等关键技术点。最后,作者指出中间件架构设计对系统性能的决定性影响,
|
12月前
|
存储 缓存 NoSQL
分布式系统架构8:分布式缓存
本文介绍了分布式缓存的理论知识及Redis集群的应用,探讨了AP与CP的区别,Redis作为AP系统具备高性能和高可用性但不保证强一致性。文章还讲解了透明多级缓存(TMC)的概念及其优缺点,并详细分析了memcached和Redis的分布式实现方案。此外,针对缓存穿透、击穿、雪崩和污染等常见问题提供了应对策略,强调了Cache Aside模式在解决数据一致性方面的作用。最后指出,面试中关于缓存的问题多围绕Redis展开,建议深入学习相关知识点。
801 8
|
8月前
|
监控 Linux 应用服务中间件
Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
2880 57
|
6月前
|
存储 监控 分布式数据库
ClickHouse分布式数据库动态伸缩(弹性扩缩容)的实现
实现ClickHouse数据库的动态伸缩需要持续的维护和精细的操作。从集群配置到数据迁移,再到监控和自动化,每一步都要仔细管理以确保服务的可靠性和性能。这些活动可以显著提高应用的响应性和成本效率,帮助业务根据实际需求灵活调整资源分配。
398 10
|
7月前
|
存储 关系型数据库 分布式数据库
【赵渝强老师】基于PostgreSQL的分布式数据库:Citus
Citus 是基于 PostgreSQL 的开源分布式数据库,采用 shared nothing 架构,具备良好的扩展性。它以插件形式集成,部署简单,适用于处理大规模数据和高并发场景。本文介绍了 Citus 的基础概念、安装配置步骤及其在单机环境下的集群搭建方法。
652 2
|
8月前
|
人工智能 Cloud Native 容灾
深圳农商银行三代核心系统全面投产 以云原生架构筑牢数字化转型基石
深圳农商银行完成第三代核心系统全面上云,日均交易超3000万笔,峰值处理效率提升2倍以上。扎根深圳70余年,与阿里云共建“两地三中心”分布式云平台,实现高可用体系及全栈护航。此次云原生转型为行业提供可复制样本,未来将深化云计算与AI合作,推动普惠金融服务升级。
607 17
|
10月前
|
消息中间件 人工智能 监控
文生图架构设计原来如此简单之分布式服务
想象一下,当成千上万的用户同时要求AI画图,如何公平高效地处理这些请求?文生图/图生图大模型的架构设计看似复杂,实则遵循简单而有效的原则:合理排队、分工明确、防患未然。
407 14
文生图架构设计原来如此简单之分布式服务