民生银行核心分布式改造实践分享

简介: 在没有分布式技术之前,国内银行的核心系统面临着很多挑战。以民生银行为例,2013年的时候每天交易量约1800万笔,整个项目的硬件和运维投入达到1.1亿多,成本非常高昂。中国民生银行总行信息科技部总经理牛新庄做了题为《民生银行核心分布式改造实践分享》的演讲,主要分享民生银行近几年采取的核心系统分布式改造成果。

摘要:在没有分布式技术之前,国内银行的核心系统面临着很多挑战。以民生银行为例,2013年的时候每天交易量约1800万笔,整个项目的硬件和运维投入达到1.1亿多,成本非常高昂。中国民生银行总行信息科技部总经理牛新庄做了题为《民生银行核心分布式改造实践分享》的演讲,主要分享民生银行近几年采取的核心系统分布式改造成果。

民生银行分布式核心架构

960125d6d16ae31db20d8344e6332936b7ed1e16 

民生银行的分布式核心架构是金融行业的一个标杆,分布式改造之前做测试的时候,每秒峰值最高也只能达到7800个tps,但是现在用这种横向扩展的方式,每秒轻轻松松就可以达到2~3万tps,不仅降低了成本,而且还可以随时横向扩展。事实上技术上的改造也是银行的技术架构的转移,这个转移反过头来又会去影响银行业务的发展。渠道的分布式系统是非常简单的,但是核心的分布式改造是非常难的,目前民生银行的系统的核心分布式改造非常成功,已经稳定运行了好几个月,银行系统的核心分布式改造方案是可行的,而且银行系统的核心分布式改造也是将来一种技术改革的趋势。

8926e428327c2597fa9c099e47591dba5a60295c 

分布式核心应用分层架构基本上可以分为四层,最上面这层叫做服务治理层,在这层上民生银行采用的是阿里云的Dubbo服务。民生银行在2013年与阿里云签订了协议,阿里云将Dubbo开源给民生银行,民生银行在Dubbo上做了改进以适应银行的金融场景。第二层叫服务组装层,第三层叫原子服务层,最后一层是数据库层。在应用层是服务治理的能力,过去银行在讲敏捷开发的时候,最困难的地方在于微服务的治理。这在传统的系统架构上面是很难治理的,也导致了系统的开发很难复用,但是民生银行这一次通过分布式化把服务治理好了以后,很多服务可以重新复用,无形之中能快速的迭代开发,包括在数据层和基础设施层。

345cb720fcf790ccebf27b04360e95c5410335cc 

整个分布式技术平台包括的功能有:

1、分布式数据库访问。一个理想的数据库架构,其实最开始设计的时候就应该考虑很多后面的事情,但是大部分银行应用迫于业务的压力而匆匆的上线,导致后期很难修改,所以在数据库层面,民生银行进行分库分表,读写分离。

2、分布式事务。在分布式事务上面,民生银行是基于可靠消息的最终一致性和基于冲正模型的反向处理,来保证数据库可靠运行。

3、分布式服务框架与服务管控以及第四分布式批量作业调度。这是金融行业与传统的行业不一样的地方,在一个多并发的情况下,分布式的消息处理能力是最关键的,之前民生银行试了很多开源的框架,但是在压力测试下,都不满足民生银行的要求,因此民生银行重写了一套专有的批量作业调度的框架。

还有分布式配置管理、消息中心、分布式缓存,交易幂等性、统一冲正,全局系列的核心功能,这些所有的核心因素集在一起,构建了分布式的技术核心平台。

8e2eb686e111c02c15159302bdd737c440c995b1 

在分布式的技术架构的设计上面,有应用的分布式和数据库的分布式。通常大家在讲分布式的时候,有的是在底层数据库上实现分布式,有的是在应用层实现分布式。因为银行系统的业务在很多时候需要靠业务逻辑,需要保证应用的可靠运行,但是底层也需要分布式改造,所以民生银行系统的核心架构在应用层和数据库层都实现了分布式。在应用的分布式上,首先在服务接入层实现了服务路由及管控能力,支持服务与数据单元化部署,然后在分布式服务层,建立分布式服务框架,集成分布式消息及批处理框架能力。在数据的分布式上,首先在分布式数据库层实现分库分表的数据水平扩展能力,然后在DevOps层面上建立分布式运维基础能力,支持分布式应用的持续集成和部署。

分布式建设中攻克的难点

民生银行在进行分布式改造的时候,遇到了很多难点,这些难点包括:

1、在服务接入的时候技术难点

包括服务网关、访问控制、服务限流、交易幂等性等,系统需要提供服务的统一接口,并将外部请求路由到相应服务;需要提供细粒度服务访问安全控制,确保系统的安全生产运行;提供多维度服务限流,有效的应对瞬间爆发的高并发访问;支持交易幂等性,防止同一笔交易重复处理。

c8771a289d642727fa74974e3c44d4583dbb07e1 

2、平台应用技术难点

包括服务框架、配置中心、消息中心、批处理框架等。需要攻克这些难点,提供面向远程过程调用的服务框架和面向消息通信的消息中心,解决分布式环境下大量应用节点配置管理和变更复杂的问题,提供应用于数据分布式之后批处理作业开发与运行的机制。

3、配置中心技术难点

主要解决配置分发时的时延控制和多节点的一致性控制。

9b081cf3c9378ae6ab4ca4c3932890928f1768af 

4、数据访问的技术难点

解决分布式数据访问问题,实现数据库水平扩展,完成分库分表、读写分离的SQL自动路由,且对应用透明,性能高。解决分布式运维问题,支持数据库分表后的应用数据运维支持。

5、应用分库分表的技术难点:

数据库层支持横向扩展,尽量避免分布式事务,应用透明,降低运维复杂度。

6、一致性保证机制:

14f338e733e1ccbfc17f948790b7259dc8a495e8 

充分应用微服务和组件化的设计思想,充分解耦应用,最大程度避免分布式事务,在幂等一致性上由服务提供方实现服务处理的幂等性,避免重复提交事务。应用通过冲正、对账、一致性检查等补偿手段确保业务完整性和最终一致性。采用两阶段提交实现分布式的强一致性。

6、分布式架构运维支撑体系

81117299166d25370fcbc809dc08ac7267814859 

以民生银行为例,在核心分布式系统上,应用和数据分散,服务层次、调用关系和系统状态复杂,设备多、应用多、服务多、配置多,造成核心分布式系统非常难以运维。民生银行实现了服务治理、分布式管控平台、运维视点、集中监控平台、分布式DevOps平台、灾备自动化指挥平台、交易监控平台、实时链路分析、运维架构可视化、日志分析等主要功能。

c773a2078e93a274dcc73e50beb24058e75be854 

打造了分布式DevOps平台,实现操作自动化,主要功能包括:快速的启停时间,实现秒级流量切换;灵活的部署方式,可快速部署应用、主机、集群和机房;可信的部署结果,自动对集群、应用进行健康检查。

分布式架构实施建议

192c59b0d66c503d412bee17cbed820155ea9326 

民生银行认为系统总体改造要点及路径需要经历三个阶段:

1、应用架构的X86化改造,目标是开发统一的分布式微服务框架,实现应用无状态化,数据集中,统一管控。

2、云化基础设施改造,实现数据与业务分离,实施业务去状态化改造,并将数据层迁移到云化基础设施,建立云平台,存储计算虚拟化,数据库分布式部署。

3、云化服务,打造开放的服务能力平台,抽取公告技术服务能力,统一数据处理,全面部署X86集群,减少对数据层逻辑依赖,构建公告数据处理。

ae5df0de5ef4aa0a7ae8b6d39a33741e7c0d606f 

另外在应用设计上面,总则是进行垂直水平切分,垂直切分优先,并尽量拆分成流水型应用和状态型应用,并将状态型业务集中下沉。目前民生银行已经把直销银行应用到核心系统之上了,运行效果非常好,现在正在计划把其他的例如网银、手机银行等系统全部采用这样的核心分布式进行改造。

本文由云栖志愿小组黄小凡整理

目录
相关文章
|
6月前
|
关系型数据库 Apache 微服务
《聊聊分布式》分布式系统基石:深入理解CAP理论及其工程实践
CAP理论指出分布式系统中一致性、可用性、分区容错性三者不可兼得,必须根据业务需求进行权衡。实际应用中,不同场景选择不同策略:金融系统重一致(CP),社交应用重可用(AP),内网系统可选CA。现代架构更趋向动态调整与混合策略,灵活应对复杂需求。
|
6月前
|
人工智能 安全 Java
分布式 Multi Agent 安全高可用探索与实践
在人工智能加速发展的今天,AI Agent 正在成为推动“人工智能+”战略落地的核心引擎。无论是技术趋势还是政策导向,都预示着一场深刻的变革正在发生。如果你也在探索 Agent 的应用场景,欢迎关注 AgentScope 项目,或尝试使用阿里云 MSE + Higress + Nacos 构建属于你的 AI 原生应用。一起,走进智能体的新世界。
1316 86
|
7月前
|
消息中间件 缓存 监控
中间件架构设计与实践:构建高性能分布式系统的核心基石
摘要 本文系统探讨了中间件技术及其在分布式系统中的核心价值。作者首先定义了中间件作为连接系统组件的"神经网络",强调其在数据传输、系统稳定性和扩展性中的关键作用。随后详细分类了中间件体系,包括通信中间件(如RabbitMQ/Kafka)、数据中间件(如Redis/MyCAT)等类型。文章重点剖析了消息中间件的实现机制,通过Spring Boot代码示例展示了消息生产者的完整实现,涵盖消息ID生成、持久化、批量发送及重试机制等关键技术点。最后,作者指出中间件架构设计对系统性能的决定性影响,
|
8月前
|
数据采集 消息中间件 监控
单机与分布式:社交媒体热点采集的实践经验
在舆情监控与数据分析中,单机脚本适合小规模采集如微博热榜,而小红书等大规模、高时效性需求则需分布式架构。通过Redis队列、代理IP与多节点协作,可提升采集效率与稳定性,适应数据规模与变化速度。架构选择应根据实际需求,兼顾扩展性与维护成本。
247 2
|
11月前
|
安全 JavaScript 前端开发
HarmonyOS NEXT~HarmonyOS 语言仓颉:下一代分布式开发语言的技术解析与应用实践
HarmonyOS语言仓颉是华为专为HarmonyOS生态系统设计的新型编程语言,旨在解决分布式环境下的开发挑战。它以“编码创造”为理念,具备分布式原生、高性能与高效率、安全可靠三大核心特性。仓颉语言通过内置分布式能力简化跨设备开发,提供统一的编程模型和开发体验。文章从语言基础、关键特性、开发实践及未来展望四个方面剖析其技术优势,助力开发者掌握这一新兴工具,构建全场景分布式应用。
970 35
|
11月前
|
监控 Linux 应用服务中间件
Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
3553 57
|
11月前
|
人工智能 安全 应用服务中间件
阿里巴巴 MCP 分布式落地实践:快速转换 HSF 到 MCP server
本文分享了阿里巴巴内部将大规模HSF服务快速转换为MCP Server的实践经验,通过Higress网关实现MCP协议卸载,无需修改代码即可接入MCP生态。文章分析了MCP生态面临的挑战,如协议快速迭代和SDK不稳定性,并详细介绍了操作步骤及组件功能。强调MCP虽非终极解决方案,但作为AI业务工程化的起点具有重要意义。最后总结指出,MCP只是AI原生应用发展的第一步,未来还有更多可能性值得探索。
1506 49
|
12月前
|
存储 负载均衡 测试技术
ACK Gateway with Inference Extension:优化多机分布式大模型推理服务实践
本文介绍了如何利用阿里云容器服务ACK推出的ACK Gateway with Inference Extension组件,在Kubernetes环境中为多机分布式部署的LLM推理服务提供智能路由和负载均衡能力。文章以部署和优化QwQ-32B模型为例,详细展示了从环境准备到性能测试的完整实践过程。
|
并行计算 PyTorch 算法框架/工具
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
本文探讨了如何通过技术手段混合使用AMD与NVIDIA GPU集群以支持PyTorch分布式训练。面对CUDA与ROCm框架互操作性不足的问题,文章提出利用UCC和UCX等统一通信框架实现高效数据传输,并在异构Kubernetes集群中部署任务。通过解决轻度与强度异构环境下的挑战,如计算能力不平衡、内存容量差异及通信性能优化,文章展示了如何无需重构代码即可充分利用异构硬件资源。尽管存在RDMA验证不足、通信性能次优等局限性,但该方案为最大化GPU资源利用率、降低供应商锁定提供了可行路径。源代码已公开,供读者参考实践。
1179 3
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
|
人工智能 运维 监控
领先AI企业经验谈:探究AI分布式推理网络架构实践
当前,AI行业正处于快速发展的关键时期。继DeepSeek大放异彩之后,又一款备受瞩目的AI智能体产品Manus横空出世。Manus具备独立思考、规划和执行复杂任务的能力,其多智能体架构能够自主调用工具。在GAIA基准测试中,Manus的性能超越了OpenAI同层次的大模型,展现出卓越的技术实力。