分布式NewSQL数据库实践——民生银行经典案例


640?wx_fmt=gif


前言


此前,金融信息化建设主要依托原有集中型 IT 架构进行维护扩展,系统规模及复杂程度呈指数级增长,各类瓶颈逐渐暴露,日益增长的数字金融需求同旧式的系统架构缺陷之间的矛盾愈加凸显。

中国人民银行、中国银行保险监督管理委员会等金融监管部门逐渐推出分布式转型政策要求,金融企业开始兴起分布式转型浪潮。

民生银行作为中国第一家非国有企业所有的银行以及中国领先的零售银行,管理的总资产为 3.2 万亿人民币,运营 33 家分支和超过 700 家银行网点。在业务创新和技术创新上,民生银行一直走在业界的前列,尤其在人工智能、大数据领域,民生银行做出了很多积极的尝试,取得了不错的成效。

银行分布式转型需求


应用和业务层的压力,给商业银行IT和数据架构带来了新需求和挑战,分布式技术架构转型的需求也就应运而生。商业银行亟需分布式架构转型,主要体现在如下几个方面:

1

提升海量数据系统管理弹性。当商业银行系统内数据量急剧增大时,系统需要弹性地扩容以应对PB级别以上的数据管理,这种弹性容量调整可以实现让所有数据保持在线。


2

提升数据系统管理性能。针对客户的实时需求,商业银行数据系统需要满足高并发业务操作需求,实现海量数据超高性能读写以及实时访问查询。

3

满足多类型数据处理需求,提升系统效率。在跨业务的融合中,亟需实现对多模数据的统一管理,从结构化数据到半结构化数据再到非结构化数据,进而实现不同类型的数据统一融合管理,从而大大提升系统效率。

4

简化开发运维节约成本。随着应用的增多,更需要分布式架构支持,进行数据分区管理,实现业务有效隔离。同时,保持系统的弹性、兼容性,大大简化运维开发。

5

有能力支撑核心业务系统的国产产品。除了数据安全的要求和“技术先进”,对于核心业务,更重要的是对产品代码级具有控制力,这样可以保证产品针对用户共性需求不断进行迭代更新,也带来产品稳定性以及高效强力的技术支持。


民生银行新一代数据库应用情况


目前,在数据库领域,民生银行新一代数据库的应用目前主要分为三个领域。

      

  

数据库分库分表


针对数据弹性扩容和性能、高可用等要求,我们也针对数据库进行了分库分表改造。目前已经实现Oracle、IBM DB2以及MySQL数据库的分库分表改造,总分库数超过15,分表数超过500张。

 

  

传统数据库的跨中心分布和双活


我们针对IBM DB2等传统关系型数据库产品进行了跨中心分布和双活的改造。提升总体安全性,提升RTO,RPO,实现“5个9” ,降低风险提高效率,操作过程更简单透明,同时大大提高软硬件资源利用率,节约了建设成本。

 

 新型分布式数据库产品使用


除了传统数据库的分布式改造,民生银行也积极尝试新型分布式数据库产品。如国内的分布式数据库SequoiaDB,目前已经在海量数据查询、分布式影像平台和归档数据管理等在线业务系统中规模部署使用。


分布式NewSQL创新实践


当前分布式架构转型的改造已经取得相当成效,但随着我行各类业务负载的不断增大,以及直销银行、互联网金融和人工智能等创新业务的拓展,同时分布式数据库应用也需要向更核心的业务系统推进。当前方案面临新的挑战:


1

开发运维成本: 分库分表方案,在扩展性和性能、并发上仍有瓶颈,且开发投入的各项成本高。分库分表的方案需要预先根据业务对数据库进行切分,这样的方案丧失了较多的弹性,同时在运维层面,也需要投入不小的人力。


2

降低使用和运维成本: MySQL兼容性。开源数据库MySQL目前在互联网行业应用较广,许多应用也基于MySQL开发,但是目前的分布式数据库很多没有实现完全的MySQL兼容,因此在实际投产后,实际的使用和运维成本更高了。


3

进入核心业务场景: 使用开源数据库、中间件方案,由于没有商业化厂商的支持和行业积累,稳定性没有保证,再进入核心业务系统时存在一定风险。


4


国产化要求:在分布式数据库领域,不能过分依赖海外开源产品,需要着重考察国内自主可控的分布式数据库产品。


针对上述需求,我们在分布式NewSQL的创新实践中,经过测试和对比,我们最终选择巨杉的SequoiaDB。


SequoiaDB 3.0 版本,目前已经实现完整协议级别MySQL兼容,可以在数据库层面做到分布式并且对已有业务全兼容。同时,巨杉在金融行业已经有过大规模使用考验,在产品成熟度上更可靠。

 



分布式NewSQL数据库平台,在使用SequoiaDB 3.0 后,体现了几大业务优势:

  • 分布式可扩展性:存储层的分布式数据引擎,可以实现数据量的弹性扩容,灵活应对业务需求的调整。

  • 微服务架构:整个平台参考了微服务架构,接入层的SQL实例和存储层的存储节点都可以进行自由的配置,应用可以按需选择SQL实例和存储节点。

  • MySQL完全兼容:接入层实现了完全协议级兼容MySQL,应用无缝对接,大大降低使用和运维成本。

 



业务场景测试结果


为了体现NewSQL平台的优势,我们选取了SequoiaDB在几个主要业务场景下的一些测试数据进行说明,这些业务场景可以代表我行的许多重要交易场景:


 渠道复杂查询场景


此场景以查询为主,查询语句较复杂,涉及4张表的关联,其中包括2张大的流水表的关联操作,每张表记录数达到数亿条,最终匹配结果达到数百条记录。


640?wx_fmt=png


在实际测试中系统的业务处理能力仍然可达到平均每分钟3,916.45笔,并且运行过程系统的吞吐量表现非常平稳。

 

 高频交易流水查询场景


此场景以高频查询为主,主要针对近期的流水记录,查询频率较高。共涉及3张表,其中小流水表和资料表记录条数分别为3000万条,大流水表为3亿条。


640?wx_fmt=png


通过测试,在该场景下,每分钟的业务处理能力可达到1,886,184.03笔,如此高的吞吐量仍然能够在整个过程中持续保持平稳。


 柜台业务办理场景


此业务以查询和更新为主,执行频率高,对响应时间要求高。其中查询业务涉及3张表,其中两张资料表为1000万,3000万条数据,维度表数据为1万条;更新操作则涉及资料表1000万条记录和维度表 1万条记录。


640?wx_fmt=png


混合查询和更新,在执行过程中可能出现不同事务对同一条记录的读写冲突,因此吞吐量表现出现一些小幅度波动,但总体平均每分钟的业务处理仍然可达到51,090.03笔。


 计费业务场景


此业务场景以插入、更新和查询为主,执行频率高,对响应时间要求高。其中查询涉及两张资料表和两张维度表,资料表记录数分别为1000万与3000万;插入操作涉及两张流水表,记录数分别为3000万与900万;更新则涉及一张维度表与一张流水表,记录数约为1万与1亿。


640?wx_fmt=png


业务场景较为复杂,每笔业务至少包含50余个数据库操作,混合着插入、更新以及查询等多种操作,平均每分钟的业务处理仍然可达到9,861.57笔。,相对波动也比较小。

 

小结


SequoiaDB 3.0 的MySQL兼容性较为优秀,扩展能力较好,总体性能满足重要交易系统的要求。后续,我们将会把更多现有分库分表方案难以处理的业务向NewSQL平台迁移。

 

我们也会持续评估未来大规模使用分布式数据库的可能性,充分发挥NewSQL数据库的优势,帮助我们的业务、技术创新,同时也希望我行在分布式数据库建设过程中的可以分享更多成功经验。

作者简介


周鹏,现就职于中国民生银行信息科技部,负责全行数据库维护及分布式数据库平台建设等工作,具有多年的数据类系统架构设计及调优经验。对于新型分布式数据库、大数据生态系统研究具有浓厚兴趣。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525669.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「拨云见日」英特尔揭秘短视频背后的二三事

“像一棵海草海草,随风飘摇,海草海草,浪花里舞蹈……”看到这样魔性的歌词,你是不是有立刻跟着唱的冲动,甚至还很想起来跳一段呢?去火锅店点餐,你会掏出手机告诉服务员按照视频内容操作吗&#…

英特尔助力金山云带你畅游云端的游戏世界

科技的发展让人们可以在任意时间、任意地点与不同的玩家一同畅游游戏世界。不论是拥挤的通勤路上,还是热闹的餐厅,都少不了痴迷于手游的玩家。来自《2017年中国游戏产业报告(摘要版)》的数据表明,去年中国游戏市场全年…

数据洪流时代,企业转型需要修建自己的“都江堰”

科技的进步推动着人类文明的进化,从农业采集社会到如今的网络智能社会,文明的进化也同样带动了企业的“进化”。今天,人工智能、云计算、大数据等技术的不断突破,让网络产生的数据量呈爆发式增长,数据洪流汹涌奔来&…

时代变了

阅读文本大概需要 2.6 分钟。最近一段时间,经常有人问我这么一个问题,说,张哥,现在市面上有各种付费网课和付费专栏,但我总觉得只有看书学习才是正途,不知道张哥怎么看?到底哪种学习方式最好呢&…

终于有人把什么是云计算、大数据和人工智能讲明白了!云计算是什么?

今天跟大家讲讲云计算、大数据和人工智能。为什么讲这三个东西呢?因为这三个东西现在非常火,并且它们之间好像互相有关系,可是很多人却不知道什么是云计算或者云计算应用在哪:一般谈云计算的时候会提到大数据、谈人工智能的时候会…

数据洪流来袭,企业转型势不可挡,如何四两拨千斤?

在漫长的历史里,文明的进步都是伴随着科技的发展,企业也在不断进化,无论是商业战略还是商业模式,在科技的推动下与时俱进,不断更迭创新。历史的长河流入数据洪流的时代,人工智能、大数据、云计算等新技术掀…

福利 | 2018 OpenInfra Days China限量版免费票任性放出

号外号外!福利来袭,手速up up up~春困夏乏秋盹冬眠暑气炎炎,OpenInfra帮你提神醒脑——特别好礼限量放送Ready?Go!2018 年 6 月 21-22 日,OpenInfra Days China将于国家会议中心北京升级回归,汇…

开源不止,前进不息:2018 OpenInfra Days China来了!

OpenStack Days China是由一群热衷并专注于开源的中国志愿者为中国开源社区组织和举办的年度社区活动。近两年来,志愿者团队成功激起广泛关注,获得了中国各行各业和来自全球开源开发者社区的巨大支持。会议注册人数共计超过 1 万人,参与人数逾…

短暂相逢却回味无穷,全球最具影响力的以太坊技术会议视频,你保存了吗!...

关注我们,了解更多精彩内容自2008年中本聪发表的那篇仅短短9页的比特币白皮书后,毁誉参半的比特币对当今互联网及物联网的世界格局产生了重大的影响,其后延伸出来的区块链技术成为了全球最时髦的名词。相比比特币,以太坊是区块链技…

互联网+2.0:技术有多强 梦想才有多近

在过去不到十年的时间里,互联网行业高速发展。先是以手机、pad等智能终端为主的移动互联网打破了PC端互联网商业发展瓶颈,实体经济也依托互联网进行改造升级,“互联网”成为行业图腾和符号。后是随着人工智能、大数据、云计算等技术的融入&am…

java定时器 并发_【java多线程与并发库】— 定时器的应用 | 学步园

定时器的应用1、 定时器主要涉及到两个类(java.util包中)-》public class Timer extendsObject(一种工具,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。 )-->public abstract class TimerTask extendsObjectimple…

效率提升,英特尔助力企业驶入“快车道”

随着越来越多的企业加入数字化转型大军,每个企业都在期待着数字化带来的业务创新及优化。从云平台的应用、大数据的决策分析,再到工作流程自动化,企业的IT部门不再仅仅是维护企业本身的业务运作以及数据处理,而是需要接入整个生态…

java怎么写事件listener_java 事件监听器ActionListener

/** 功能:java事件监听器ActionListener*/package com.events;import java.awt.BorderLayout;import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;public class changebgcolor extends JFrame implements Ac…

Spring AOP 使用介绍,从前世到今生

前面写过 Spring IOC 的源码分析,很多读者希望可以出一个 Spring AOP 的源码分析,不过 Spring AOP 的源码还是比较多的,写出来不免篇幅会大些。本文不介绍源码分析,而是介绍 Spring AOP 中的一些概念,以及它的各种配置…

java怎么用doss窗口_GitHub - doss128/symphony: 一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台。...

下一代的社区系统,为未来而构建💡 简介Symphony([ˈsɪmfəni],n.交响乐)是一个现代化的社区平台,因为它:实现了面向内容讨论的论坛实现了面向知识问答的社区包含了面向用户分享、交友、游戏的社交网络100% 开源⚡ 动机…

机器学习算法比较

本文主要回顾下几个常用算法的适应场景及其优缺点!(提示:部分内容摘自网络)。机器学习算法太多了,分类、回归、聚类、推荐、图像识别领域等等,要想找到一个合适算法真的不容易,所以在实际应用中…

还在用 Python 2.x?Python 3.7.0 正式发布!

6 月 27 日,期待已久的 Python 3.7.0 正式发布,与之同行的还有 3.6.6 版本的更新。此次,最新版的 Python 3.7.0 带来了诸多的新功能和优化,接下来,让我们一睹为快。Python 3.7.0 主要更新新的语法特性:PEP …

2018 年你需要知道的 11 个 JavaScript 库

译者按:你可能已经用到Underscore或者Lodash。本文列举了11个常用的库来提高开发效率。为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。JavaScript依然是2018年最受欢迎、最流行的编程语言&…

云化要求下,数据库架构的演进

如今,大型企业如金融企业和银行等,在下一代的微服务架构转型要求下,需要基础软件和数据平台能够实现原生的云化,以满足微服务架构的需求。微服务,也就是一种面向服务的,有特定边界的松散耦合的架构。主要特…

消息中间件—简谈Kafka中的NIO网络通信模型

前面写的两篇RocketMQ源码研究笔记系列:1. 消息中间件—RocketMQ的RPC通信(一)2. 消息中间件—RocketMQ的RPC通信(二)基本上已经较为详细地将RocketMQ这款分布式消息队列的RPC通信部分的协议格式、消息编解码、通信方式…