NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

网商银行×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:441865
用户头像

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

关注

评论

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

加快速度推进区块链融合发展

CECBC

区块链 行业资讯 产业落地

架构师训练营第8周总结

Hanson

一文带你掌握OBS的两种常见的鉴权方式

华为云开发者联盟

Rest OBS 鉴权 Header携带签名 URL携带签名

技术贴丨教你使用华为云鲲鹏服务器部署Discuz!论坛

华为云开发者联盟

鲲鹏920 服务器 华为云 Discuz! 华为云鲲鹏

架构师训练营第8周作业

Hanson

week9作业1

架构师训练营第九章作业

吴吴

最右JS2Flutter框架——通信机制(三)

刘剑

flutter 大前端 探索与实践

第九周.命题作业-GC原理

刘璐

开源、云、传统IT的三国杀

郭华

云计算 开源 商业 IT

week09 总结

Z冰红茶

一周信创舆情观察(7.27~8.2)

统小信uos

作业一

Kiroro

白鹭引擎助力《梦幻西游网页版》刷新h5游戏新高度

DT极客

数据库实践丨MySQL多表join分析

华为云开发者联盟

MySQL 数据库 华为云 join 多表join

凭实力蝉联第一!Flink 又双叒叕上榜啦

Apache Flink

flink

埋点全解析,你最关心的可视化埋点在这里!(文末附开源地址)

易观大数据

零/低代码编程风口已到,请快快上车!

代码制造者

编程语言 低代码 零代码 iVX

奈学:一起了解几种序列化协议

古月木易

序列化 序列化协议

垃圾回收&秒杀设计

dony.zhang

垃圾回收

阿里最“短命”的P10?入职不到3周,钉钉副总裁张志琦因个人原因离职

程序员生活志

阿里巴巴 互联网热点

【得物技术】流量之战—性能优化三十六计

得物技术

Java 流量 得物技术部 商品 电商平台

JVM类加载与执行

superman

JVM 类加载

设计一个秒杀系统挑战和问题及方案或思路

Young

秒杀系统

Z冰红茶

地方政府争夺数字货币试点,互联网巨头参与测试,央行数字货币即将来临

CECBC

行业资讯 央行数字货币

为什么你总觉得自己是对的?

池建强

个人成长

总结

Kiroro

不仅性能秒杀Hadoop,现在连分布式集群功能也开源了

爱倒腾的程序员

大数据 涛思数据 tdengine 物联网 时序数据库

高教授:区块链软硬件相结合能提升系统性能 也能保持一定的灵活性

CECBC

分布式 行业资讯 区块链技术 落地应用

cxuan读者的外包面试之旅

cxuan

Java 面试 程序人生

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