您当前的位置:首页 > 电脑百科 > 程序开发 > 架构

实战丨商业银行分布式业务核心系统架构研究

时间:2020-08-05 10:36:09  来源:  作者:

文 / 中国邮政储蓄银行新一代个人业务核心系统项目组

实战丨商业银行分布式业务核心系统架构研究

 

核心系统向分布式转型是趋势

近年来,互联网金融业务得到飞速发展,并逐渐侵入到商业银行传统业务领域,给商业银行带来巨大的冲击。互联网金融业务一般有以下特点:一是业务需求快速变化,当前互联网金融业务模式创新层出不穷,需要业务功能快速优化迭代;二是存在浪涌式并发交易高峰,如在2019年“双十一”,网联平台处理跨机构支付交易超过15.4亿笔,峰值超过7万笔/秒;三是要求更高的服务支撑能力,互联网金融业务强调生态及场景化,以用户体验为本,在场景化、生态体系建设上更完善;四是计算资源和成本可控,普遍采用x86平台,基于开源软件技术框架,使技术支撑成本最小化。

以上这些对商业银行传统核心系统的能力提出巨大挑战。首先,传统核心系统面临并发交易处理能力瓶颈,“双十一”“秒杀”等特殊时点的交易高峰出现时,传统核心系统即便是采用大型机也承受了巨大压力。其次,业务需求响应能力不足,与传统集中式系统匹配的瀑布式开发模式无法适应敏捷开发需求,难以满足业务发展的迫切需要。第三,对服务开放的支撑不够,传统集中式产品和服务封闭,难以与合作伙伴场景融合,场景化、生态化的金融服务能力欠缺。第四,技术资源不可控,传统集中式核心一般依赖大型机、Unix小型机以及与之配套的软件技术栈,产品可替代性差,对商业银行有很强的约束性。

伴随着x86平台可靠性和处理能力的提升,开源社区的壮大,商业银行核心系统向分布式转型是大势所趋。

新一代个人业务核心系统总体介绍

邮储银行一直坚持分布式架构的技术路线,个人储蓄业务核心系统基于开放式小型机集群,采用分布式架构,于2014年投产,支撑了邮储银行从单一储汇机构到全功能商业银行的跨越式发展。近几年业务发展迅猛,系统架构老化、处理能力不足、硬件故障多发等问题凸显,难以适应未来发展的需要。因此,邮储银行正在构建新一代个人业务核心系统,从根本上解决问题。

邮储银行新一代个人业务核心系统建设的总体目标是以个人客户服务为中心,围绕个人存款、个人结算账户、银行汇款等产品服务,建成一个能够快速响应市场需求,产品丰富、客户体验好、核算准确、完整、及时,性能高效、运行稳定、安全合规、可维护,内核技术成熟、外围功能灵活,技术自主可控、先进的平台化银行核心业务系统。

根据以上目标,对于新一代个人业务核心系统,邮储银行提出了三个方面共13项具体能力要求。在业务方面,新核心需要具备产品快速创新和差异化服务能力、以客户为中心的服务能力、统一的客户账户管理能力、高效的风险控制能力和完备的数据管理能力。在技术方面,要求系统可用性超过99.99%,可支持超过5万TPS的交易峰值,达到等保4级安全要求,同时支持在线扩展、一体化监控和智能化运维。在信息化支撑方面,实现核心服务API化,可支撑并行迭代周期在30天内的敏捷研发,支持敏态和稳态双模运维。

新一代业务核心系统建设特点

1.采用邮储银行特色的企业级业务建模方法。企业级业务建模作为一种新的业务架构设计与需求表达方式,具有“大而不散”“快而不乱”“触而不离”“变而有序”的特点,有助于打破部门界限,显著提升业务敏捷能力,真正实现业务与业务之间、业务与IT之间的一体化协同,全面提升客户体验。

在借鉴同业领先实践的基础上,结合邮储银行实际,着眼于未来业务和金融科技的发展融合,我们对业务建模方法进行了改良,形成了具备邮储银行特色的业务建模方法。采用“T型”策略,即“横向覆盖”“纵向深入”“金字塔扩展”,对全行业务进行了全面梳理,并已完成个人存款、个人结算账户、个人支付结算三大业务领域的业务建模工作,可有效指导后续的系统设计与开发工作。目前,业务建模工作正逐步向外延展,覆盖全行的金字塔型企业级架构体系已逐渐成型。

2.形成端到端的分布式系统建设方法。新一代个人业务核心系统建设从业务需求到系统实现均形成了端到端的、完整的、体系化的分布式系统建设方法。

在系统分析设计方面,邮储银行在参考同业领先经验基础上,结合自身业务建模方法和新核心系统分布式、微服务、单元化的系统架构方案,形成了具有邮储银行特色的系统分析设计方法。此方法覆盖了分析设计阶段全过程,能够顺畅承接企业级业务建模成果,进行分布式系统的应用组件分析和设计。

在系统实现方面,邮储银行一方面坚持开放平台、分布式架构的技术路线,通过云化部署,提高系统稳定性与灵活性;另一方面坚持融入以x86平台、开源框架为基础的技术体系,适应国家信息安全战略要求,形成自主可控的企业级技术平台。

3.全面贯彻“敏态+稳态”的系统设计理念。在业务需求层面,建立完善的业务需求管理体系,通过业务建模,形成由粗到细的业务需求梳理分析方法,保障了业务需求的完备性和全局性。在此基础上,针对具体业务场景,可以快速组合完善业务流程,快速定制可售产品,快速衍生新业务。

在设计实现层面,系统分为数据层、产品服务层、交易服务层三个层次,逐步由稳态向敏态演变。同时,每个层次均可根据业务产品或服务功能需求进行聚合分类,形成稳态或敏态的部署实例。另外,可针对网联扣款等特定业务场景进行定制化优化设计,形成特定的服务组件进行单独部署,满足高效、稳定的系统设计要求。据此,可以快速响应业务需求,快速构建新的服务组件,同时对关键、成熟业务均不会造成影响。

在系统维护方面,通过上述方法,预期支持大部分业务需求通过产品参数配置来实现功能落地,两周内完成发布,并且可进行不停服务的在线热发布。

4.采用单元化部署架构。借鉴互联网企业的先进实践,采用简明、清晰、统一的单元化部署策略,为系统故障快速定位和自动化处理提供基础。同时,分布式架构下标准化与自动化的部署手段结合,形成核心系统的快速弹性扩展支持能力(见图1)。

实战丨商业银行分布式业务核心系统架构研究

图1 单元化部署架构

根据架构功能的不同定位,设计五种不同类型的标准化单元,分别是网关单元、业务服务单元、公共服务单元、序号管理单元和本地资源管理单元。以上五种单元中,主体是业务服务单元。业务服务单元基于客户维度水平切分,可以跨异地部署和弹性扩展,同时在单元内部也可通过计算资源和服务实例扩充进行弹性扩展,从而在整体上既能够满足处理能力横向扩展的灵活性要求,也能够满足智能化运维的标准化要求。

5.构建智能化运维体系。基于新一代个人业务核心系统涉及技术组件多、部署规模大的特点,结合数据中心智能化运维规划,计划配套建设智能化运维体系,并与数据中心整体的自动化运维能力全面集成,带动智能化运维体系建设。

智能化运维体系将重点建设事件驱动的快速响应、数据驱动的主动维护、发布/变更驱动的敏捷交付等三大运维能力,并为运行监控、配置管理、智能运维分析、运维数据湖、流程管理、运维操作自动化、应用设计开发协同等七个重点领域,提供技术能力支撑和映射,为从基础设施层到应用层的80多个场景提供端到端的智能化运维支持。

关键问题的解决方案

1.数据切分策略。在分布式系统设计中,面临的关键点就是数据的切分策略问题。数据切分策略不仅要考虑与分布式架构的适应性、实现上的可行性,还要考虑对应用设计的负面影响最小化,如数据一致性问题。

通过反复验证,拟采用以客户维度的数据切分策略,在切分原则上,一是基于平均化原则,客户数据平均分布在各业务服务单元,保证每个业务服务单元的数据量基本一致;二是基于易扩展原则,在不影响原有数据节点的基础上可增加新节点。

2.微服务划分策略。当前业界对微服务的划分粒度没有通用的策略方法,主要凭借经验、实施工作量、技术倒推等方式进行划分。在超大规模的项目中,容易因个体能力差异导致微服务划分维度和粒度千差万别,造成系统难以落地,这是分布式系统设计实现中的一大挑战。

通过业务建模方法论指导微服务的设计,业务架构为应用架构提供输入,指导微服务应用的划分和微服务构件的设计。

3.服务路由方案。采用单元化部署结构后,衍生出了应用路由问题,即必须提出一种机制,将外部请求转发到相应的业务服务单元。

为此,提出了“要素-客户号-标准化部署单元”的两阶段路由策略。首先根据映射要素找到对应的客户号,进而找到客户对应的部署单元号。如此处理之后,即可通过交易请求中的映射要素信息,将服务请求发送到相应业务处理单元。

4.事务一致性保证机制。事务一致性是银行核心系统考虑的重点问题,但根据CAP理论,分布式系统的一致性、可用性和分区容忍性不可同时满足。目前分布式环境下,也没有能够兼顾可靠性、性能和工程可实施性的成熟的数据一致性保障技术。

在分布式核心系统建设过程中,根据自身的业务特点,形成了层次化的解决方案:在实时交易处理层面,主要采用SAGA分布式事务方案;对于实时处理不完整的情形,设计了事后补偿方案;同时,采用差错对账和差错调整机制作为兜底方案,最终确保数据的一致性(见图2)。

实战丨商业银行分布式业务核心系统架构研究

图2 SAGA处理流程

5.数据同步机制。采用单元化部署设计,系统存在多个部署单元与实例节点。为提高访问效率,减少热点操作,针对公共访问的热数据会采用多副本冗余的方式在不同的单元数据库或实例节点缓存中存储。在这种情况下,需要设置一套数据同步机制,使这些节点能够实现主副本数据之间的同步。

根据应用场景设计了数据库主备同步、数据库和缓存同步、信息发布同步三种数据同步方式。数据库主备同步用于实现系统的高可用和高可靠,保证异常情况下业务数据库能够成功切换,同时不会造成数据丢失。数据库和缓存同步一般用于缓存访问场景,避免应用访问公共热数据时频繁访问数据库,如参数数据,而是通过缓存加速访问。信息发布同步采用消息通知机制,一般用于参数下发场景,将参数迅速下发到系统各个处理节点中。

面临的挑战

针对建设方案,我们对2019年下半年开发的原型系统进行了反复测试验证,结果符合预期,验证了方案的可行性。目前,邮储银行新一代个人业务核心系统的建设大幕已正式拉开。

我们也看到,采用“分布式架构+开放平台+云化部署”架构搭建核心业务系统,同时满足大型国有商业银行可靠性、稳定性、安全性要求的做法是史无前例的。在分布式架构下设计用户体验好、业务灵活、安全高效的核心业务系统,应用设计十分复杂,对架构、设计、开发团队的技术与管理能力均有很高要求。因此,新一代个人业务核心系统建设必定是一条充满荆棘与坎坷的挑战之路,邮储银行正在砥砺前行,“一张蓝图绘到底”,确保新核心顺利投产。



Tags:架构   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
为了构建高并发、高可用的系统架构,压测、容量预估必不可少,在发现系统瓶颈后,需要有针对性地扩容、优化。结合楼主的经验和知识,本文做一个简单的总结,欢迎探讨。1、QPS保障目标...【详细内容】
2021-12-27  Tags: 架构  点击:(3)  评论:(0)  加入收藏
前言 单片机开发中,我们往往首先接触裸机系统,然后到RTOS,那么它们的软件架构是什么?这是我们开发人员必须认真考虑的问题。在实际项目中,首先选择软件架构是非常重要的,接下来我...【详细内容】
2021-12-23  Tags: 架构  点击:(7)  评论:(0)  加入收藏
现有数据架构难以支撑现代化应用的实现。 随着云计算产业的快速崛起,带动着各行各业开始自己的基于云的业务创新和信息架构现代化,云计算的可靠性、灵活性、按需计费的高性价...【详细内容】
2021-12-22  Tags: 架构  点击:(10)  评论:(0)  加入收藏
我是一名程序员关注我们吧,我们会多多分享技术和资源。进来的朋友,可以多了解下青锋的产品,已开源多个产品的架构版本。Thymeleaf版(开源)1、采用技术: springboot、layui、Thymel...【详细内容】
2021-12-14  Tags: 架构  点击:(20)  评论:(0)  加入收藏
本系列为 Netty 学习笔记,本篇介绍总结Java NIO 网络编程。Netty 作为一个异步的、事件驱动的网络应用程序框架,也是基于NIO的客户、服务器端的编程框架。其对 Java NIO 底层...【详细内容】
2021-12-07  Tags: 架构  点击:(16)  评论:(0)  加入收藏
前面谈过很多关于数字化转型,云原生,微服务方面的文章。虽然自己一直做大集团的SOA集成平台咨询规划和建设项目,但是当前传统企业数字化转型,国产化和自主可控,云原生,微服务是不...【详细内容】
2021-12-06  Tags: 架构  点击:(23)  评论:(0)  加入收藏
背景在日常工作中,我们通常需要存储一些日志,譬如用户请求的出入参、系统运行时打印的一些info、error之类的日志,从而对系统在运行时出现的问题有排查的依据。日志存储和检索...【详细内容】
2021-11-23  Tags: 架构  点击:(20)  评论:(0)  加入收藏
zookeeper动物管理员,是一个很形象的名字,是一个分布式协调服务。它可以用来做分布式配置管理,服务注册及发现,分布式锁。在CAP中,属于CP型。下图是zookeeper的架构图: 图中,绿色的...【详细内容】
2021-11-16  Tags: 架构  点击:(38)  评论:(0)  加入收藏
如何设计一个好的软件架构,如何提高软件的扩展性,移植性,复用性和可读性?很多做嵌入式开发的朋友经常会遇到这种情况:一个项目软件设计完成了,客户提出了一些新的功能需求。这时侯...【详细内容】
2021-11-08  Tags: 架构  点击:(35)  评论:(0)  加入收藏
架构是数据仓库建设的总体规划,从整体视角描述了解决方案的高层模型,描述了各个子系统的功能以及关系,描述了数据从源系统到决策系统的数据流程。业务需求回答了要做什么,架构就...【详细内容】
2021-11-03  Tags: 架构  点击:(35)  评论:(0)  加入收藏
▌简易百科推荐
为了构建高并发、高可用的系统架构,压测、容量预估必不可少,在发现系统瓶颈后,需要有针对性地扩容、优化。结合楼主的经验和知识,本文做一个简单的总结,欢迎探讨。1、QPS保障目标...【详细内容】
2021-12-27  大数据架构师    Tags:架构   点击:(3)  评论:(0)  加入收藏
前言 单片机开发中,我们往往首先接触裸机系统,然后到RTOS,那么它们的软件架构是什么?这是我们开发人员必须认真考虑的问题。在实际项目中,首先选择软件架构是非常重要的,接下来我...【详细内容】
2021-12-23  正点原子原子哥    Tags:架构   点击:(7)  评论:(0)  加入收藏
现有数据架构难以支撑现代化应用的实现。 随着云计算产业的快速崛起,带动着各行各业开始自己的基于云的业务创新和信息架构现代化,云计算的可靠性、灵活性、按需计费的高性价...【详细内容】
2021-12-22    CSDN  Tags:数据架构   点击:(10)  评论:(0)  加入收藏
▶ 企业级项目结构封装释义 如果你刚毕业,作为Java新手程序员进入一家企业,拿到代码之后,你有什么感觉呢?如果你没有听过多模块、分布式这类的概念,那么多半会傻眼。为什么一个项...【详细内容】
2021-12-20  蜗牛学苑    Tags:微服务   点击:(8)  评论:(0)  加入收藏
我是一名程序员关注我们吧,我们会多多分享技术和资源。进来的朋友,可以多了解下青锋的产品,已开源多个产品的架构版本。Thymeleaf版(开源)1、采用技术: springboot、layui、Thymel...【详细内容】
2021-12-14  青锋爱编程    Tags:后台架构   点击:(20)  评论:(0)  加入收藏
在了解连接池之前,我们需要对长、短链接建立初步认识。我们都知道,网络通信大部分都是基于TCP/IP协议,数据传输之前,双方通过“三次握手”建立连接,当数据传输完成之后,又通过“四次挥手”释放连接,以下是“三次握手”与“四...【详细内容】
2021-12-14  架构即人生    Tags:连接池   点击:(16)  评论:(0)  加入收藏
随着移动互联网技术的快速发展,在新业务、新领域、新场景的驱动下,基于传统大型机的服务部署方式,不仅难以适应快速增长的业务需求,而且持续耗费高昂的成本,从而使得各大生产厂商...【详细内容】
2021-12-08  架构驿站    Tags:分布式系统   点击:(23)  评论:(0)  加入收藏
本系列为 Netty 学习笔记,本篇介绍总结Java NIO 网络编程。Netty 作为一个异步的、事件驱动的网络应用程序框架,也是基于NIO的客户、服务器端的编程框架。其对 Java NIO 底层...【详细内容】
2021-12-07  大数据架构师    Tags:Netty   点击:(16)  评论:(0)  加入收藏
前面谈过很多关于数字化转型,云原生,微服务方面的文章。虽然自己一直做大集团的SOA集成平台咨询规划和建设项目,但是当前传统企业数字化转型,国产化和自主可控,云原生,微服务是不...【详细内容】
2021-12-06  人月聊IT    Tags:架构   点击:(23)  评论:(0)  加入收藏
微服务看似是完美的解决方案。从理论上来说,微服务提高了开发速度,而且还可以单独扩展应用的某个部分。但实际上,微服务带有一定的隐形成本。我认为,没有亲自动手构建微服务的经历,就无法真正了解其复杂性。...【详细内容】
2021-11-26  GreekDataGuy  CSDN  Tags:单体应用   点击:(35)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条