2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

网商银行×OceanBase:首家云上银行的分布式数据库应用实践

  • 2019-08-26
  • 本文字数:3043 字

    阅读完需:约 10 分钟

网商银行×OceanBase:首家云上银行的分布式数据库应用实践

本文整理自 2019 年大数据产业峰会网商银行技术专家杨祥合(花名:宫博)的演讲。本文将带读者深入了解网商银行在金融级分布式数据库 OceanBase 上的应用实践。


网商银行的数据库需求

随着移动互联、云计算、大数据等信息技术的蓬勃发展,互联网金融应运而生,促使银行业向互联网模式逐步转型。


网商银行致力于为小微企业、三农用户、大众消费者、中小金融机构提供普惠金融服务,从成立之初,就提出了低成本、高可用、高弹性的要求。另外,银行作为强监管行业,上级监管部门在不同场合都提出了自主可控的要求。为了满足合规和业务发展需要,网商银行采用了自主可控的金融级分布式数据库 OceanBase 作为核心数据库,并基于它构建了国内首家云上的互联网银行。



在这 4 年来,网商银行在分布式数据库的场景验证、迁移保障、新的运维体系和高可用架构等方面有了一定的积累和沉淀,今天与大家一起交流一下。

金融级分布式数据库简介

金融级分布式数据库 OceanBase,在设计和实现过程中,结合了传统关系型数据库与分布式系统领域的经典技术,具备高性能、高可用、可扩展等特性,解决了容量和容灾问题。OceanBase 采用多租户技术实现资源隔离,避免了互相影响。同时 OceanBase 具有较高的兼容性,在提升易用性同时,极大地降低了业务迁移成本。


数据库逻辑架构

下面来介绍一下 OceanBase 的产品架构,OceanBase 采用了 Share-Nothing 架构,提供了多地多副本的集群。


右侧是 OceanBase 部署示意图。OceanBase 集群至少要部署三副本,并使用 paxos 协议保持数据一致性。并具备如下的能力和优势:


(1)保证强一致性,在主备库之间,数据始终保持一致;


(2)提供水平扩展能力;


(3)提供机房/城市级容灾、异地多活、故障自动恢复能力。



下面来回顾一下网商银行在数据库架构方面的发展史。


网商银行从建设之初,采用 5 库 10 表的设计。升级到 OceanBase 1.0 后,逻辑架构进行了水平数据拆分,从 5 库 10 表到 100 库 100 表,支持全行业务系统运行在 100 个逻辑单元,最大可支持物理部署在多地的 100 个数据中心进行并行数据处理,用于满足指数级的金融业务增长需求。



创新一直是分布式数据库架构发展的源动力,并且始终贯穿在网商银行的技术实践过程中。数据库迁移拆分、秒级弹性数据源等,正是创新技术的体现。


在从 OceanBase 0.5 升级到 OceanBase 1.0 的过程中,物理架构也从两地三中心发展到目前的三地五中心,并逐步形成了一套完整的一站式数据迁移解决方案——OceanBase 迁移服务(OceanBase Migration Service,简称 OMS)。


OMS 是数据库拆分、迁移的利器,适用于在数据库版本升级、等表拆分和 1 拆多等场景中。无论数据库是同种类型,还是异构,实现了弹性拆分,同时也将影响面控制在最细粒度,可分钟级完成。



秒级弹性数据源是针对流水型业务提供了数据源的高可用和弹性能力,使用数据路由策略,将多组物理库配置成 1 个数据源。多组物理库之间互为故障切换(FailOver);可任意切换当前服务的数据库,而不会对业务产生任何影响,切换后在秒级别所在应用立即生效,从而大大拓展了数据库的能力,构建了数据源级别的高可用。



总结来说,OceanBase 迁移服务及拆分方案,实现了灵活的数据拆分和合并,以最小的影响,在分钟级完成切换。秒级弹性数据源,可在多套数据库下同时提供服务和自动切换的能力,并且实现了数据源级的自动故障切换(Auto FailOver)。

物理架构演进

物理架构方面,网商银行从原来的两地三中心,发展到三地五中心部署架构。容灾能力上,从容忍单机房挂掉,到城市级宕机。网商银行实现了业务应用上异地多活的能力。这背后是分布式数据库能力的增强,是对高可用的要求,本质上也是对客户体验的极致要求。


为了数据源的高可用,分布式数据库从架构角度,来进行分集群的设计,来降低特殊情况下的影响;伴随业务发展,数据中心的集群需要分摊到更多城市,实现单元化,来降低单集群的容损率。



高可用架构是对用户体验的极致追求。网商银行基于 OceanBase 构建了异地多活,每个城市都有全量数据,通过不同数据库的读写点交叉,由多个城市来共同承担用户的流量访问。


在数据库逻辑架构示意图中,应用每次写入数据到主库的同时,会由主库将事务日志强同步到其他的备库,且至少要写成功 2 个备库。



下面来举例说明数据库异地多活部署的逻辑架构。通过三地五中心的逻辑架构部署,实现 RPO = 0,RTO 小于 30 秒,单个数据中心或者当个地域故障都能保证数据库高可用并且不丢失数据。



下面是数据库逻辑架构下的库级别主从分布的样例。从逻辑架构上可以看出,每个机房都包含全量数据,多个数据库集群同时提供服务,用这种方式降低了单点故障对客户的影响。采用交叉部署的方式,同时提升了机器的资源利用率。


下图中是在单 IDC 故障、城市故障之下,逻辑架构中表的主节点(读写点)自动切换到可用节点上,整个过程 30 秒内完成,即业务 30 秒内可自动恢复。



纵观整个业务,在线数据库的关键不在于存储,而在于计算,伴随数据量增大,尽管计算能力够用,但仍需更多的存储空间。为了存储增加而扩大机器数量会导致成本过高,而历史库方案可解决成本过高问题。


历史库降成本有两种方案:


(1)降低在线库机器成本:把数据分成冷数据和热数据,将冷数据放到 sata 上,热数据放到 SSD 上;


(2)通过终态数据进历史库,这样历史库是只读的,降低历史库的全量备份的存储成本,从而节约大量资金。



从全生命周期的视角,数据库架构的发展是从全面共享到租户共享,再到集群专享的路线;因此,数据库架构需要高弹性,在资源少的时候共享,资源多的时候独享。



为了提升分布式数据库的弹性能力,我们引入了虚拟化的技术。


当硬件资源多的时候,通过简单的调度,即可分摊到更多硬件上来,从而降低单集群容损率,将业务影响降到最低; 架构弹性意味着按需投入,成本节约。



作为中国第一家核心系统基于云计算架构的商业银行,网商银行在实践中开启了新型银行的商业模式,即便没有一个网点,截止至 2018 年 6 月,网商银行及其前身阿里小贷已经累计为超过 1000 万家小微企业及个体经营者提供了贷款支持。


选择 OceanBase 三地五中心部署架构、分布式架构 SOFAStack 等,网商银行实现了业务应用上异地多活的能力,极大提升了全行的系统吞吐量。同时,借助 OceanBase 提供的多租户特性,在集群上按照业务重要程度与流量配比分配资源策略,在资源的共享与隔离上取得了最佳的平衡,极大的减少了 IT 基础设施的采购成本。



网商银行选择 OceanBase 三地五中心部署架构,满足全行多应用系统的管理与使用需求,让应用系统多活架构设计上变的异常简单。这些基础服务实现平台与应用的深度融合,不仅大幅提升研发效率,同时经过组合后还可支持快速重构银行业务价值链,将金融服务全面融入社会各类应用场景中。


除了经过内部多年的产品打磨和不同业务场景的千锤百炼,目前,OceanBase 也已经在多家金融机构落地应用,包括人保健康险、常熟农商行、苏州银行、广东农信等数十家商业银行和保险机构。

展望

在金融 IT 基础设施中,分布式数据库在容灾、高可用、高弹性方面不断发展,具备越来越强的产品能力。展望未来,网商银行期望在一体化数据网下,用创新的能力,通过业务、应用、架构、数据、资源等多种视角,来实现数据库的智能调度,来满足金融业务的战略目标和业务连续性。


当前,金融业正走在分布式数据库转型的路上,期望与行业同仁一起积极探索、开拓创新,努力拓展分布式数据库的应用边界。


本文转载自公众号蚂蚁金服科技(ID:Ant-Techfin)。


原文链接:


https://mp.weixin.qq.com/s/NdLLSQ_WHqG-fMa4x5rYhg


2019-08-26 10:442162
用户头像

发布了 150 篇内容, 共 37.0 次阅读, 收获喜欢 38 次。

关注

评论

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

第五周

Jove

基于GES图数据库的大规模数据追溯服务优化

华为云开发者联盟

数据 华为云 图数据库 数据追溯 华为云GES

产品文档总结

mas

产品更新 | 阿里云CDN边缘图像处理功能开放内测

阿里云Edge Plus

CDN 边缘计算 图像处理

可视化表单编辑器

day day up

Linux 多线程详解 —— 线程创建、终止、等待、分离

赖猫

Linux 多线程与高并发 服务器开发 Linux服务器开发 Linux线程

云计算、大数据已经过时?不,正是因为它们RPA才能大流行

王吉伟频道

人工智能 云计算 大数据 RPA 自动化

第五六周心得

Trigger

极客时间 产品经理训练营

玩家永远是对的——认知失调

Justin

心理学 28天写作 游戏设计

数仓GaussDB(DWS)全量备份总结

华为云开发者联盟

数据安全 GaussDB 备份 Roach 数据备份

来自农村的大学生开发者,用技术改变自己的家乡

华为云开发者联盟

开发者 物联网 IoT 华为云 智慧大棚

一文详解什么是可解释AI

华为云开发者联盟

AI mindspore Gradient GradCAM RISE

一个100%省力的,让城市管廊运维变得轻松的秘诀

一只数据鲸鱼

物联网 数据可视化 智慧城市 3D可视化 智慧管廊

滚动加载的网页只需点 10 下鼠标即可抓取,无编码学爬虫之四

梦想橡皮擦

Python 28天写作 3月日更

Atlassian Data Center 如何优化企业中新员工的远程入职流程

Atlassian

HR Atlassian 远程工作

【万字好文】一文看懂持续部署按需发布!DevOps部署和发布方法大全

京东科技开发者

DevOps SaaS

时间管理这件事儿「Day 11」

道伟

28天写作

3月份开始了

Nydia

挑一个产品,想一个你想做的新功能,然后写个相对完整的文档

mas

设计模式【3.1】-- 浅谈代理模式之静态、动态、cglib代理

秦怀杂货店

动态代理 代理模式

在云中应用自动化的5种方法

云计算

产品经理如何帮助减少技术债务 ?

禅道项目管理

产品 代码规范 技术债

算法刷题提醒——微信小程序 [持续优化ing]

小匚

深度思考 随笔杂谈 成长与思考

MySQL异常问题经验贴

华为云开发者联盟

MySQL 数据库 时区 SSL 连接

0 期产品训练营第五周作业 - 学情周报活动图

skylar

Elasticsearch search scroll 游标查询

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 3月日更

一文帮你搞懂 Android 文件描述符

vivo互联网技术

android 文件 文件系统

ICDAR2021首届文档图像与自然语言处理研讨会征稿开始

爱极客侠

如何实现在直播中播放音频文件

anyRTC开发者

音视频 WebRTC 直播 RTC 音频

架构学习20210302日(001)

张小胖

To B产品经理需要哪些能力呢?

博文视点Broadview

网商银行×OceanBase:首家云上银行的分布式数据库应用实践_数据库_Geek_cb7643_InfoQ精选文章