省级农信国产分布式数据库应用实践
Posted 巨杉数据库
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了省级农信国产分布式数据库应用实践相关的知识,希望对你有一定的参考价值。
随着移动互联网的迅猛发展,分布式架构在互联网IT技术领域广泛应用并积累了大量实践经验。在互联网金融快速发展和利率市场化的大环境下,建设能够支持海量客户、具有弹性扩展能力、高效灵活的分布式架构应用系统已成为国内金融行业迫切的需要。
分布式数据库应用大势所趋
图1.典型分布式数据库架构示意
集中式架构普遍缺乏弹性伸缩的能力。随着交易量和数据量的增长,系统整体吞吐量会遇到硬件或技术的瓶颈。尤其在支持面向互联网客户相关业务时,不能有效处理瞬时爆发的高并发交易,制约了客户获取以及大规模业务营销。
集中式架构采用单体应用设计。软件开发和运行管理的最小单元是应用,管理力度较粗,容易“牵一发而动全身”,应用的开发过程不易践行轻量化敏捷开发理念,系统在运行过程中容易出现单点故障,难以有效进行故障隔离。
集中式架构系统的基础设施通常使用高端服务器和存储设备,以及传统关系型数据库。硬件和软件采购成本高,开发和运维主要依赖于服务厂商,服务成本高,也无法做到完全自主掌控。
技术体系封闭,技术的发展高度依赖于厂商,特别是依赖国外厂商,商业银行的IT团队缺乏自主可控能力,在一定程度上存在信息安全风险。
国产分布式数据库应用实践
普惠金融平台与传统业务系统不同,具有互联网场景接入能力,获客方式发生了变化。为了满足客户申请贷款的爆发式增长,在审批方式和流程上有所改变,对企业征信和智能风控的要求更高。随着细分领域竞争的加剧,平台应用需要不断调整、随时迭代。
经过仔细而严格的评选,最终我社采用国产分布式数据库—SequoiaDB巨杉数据库作为底层分布式数据库平台。
平台应用利用分布式数据库计算-存储层分离技术,将协议解析、计算等模块与底层存储解耦,存储层通过多维分区实现弹性扩张,计算层采用无状态设计,独立部署,通过动态增加数据库实例线性提升计算能力,有效应对瞬时爆发的高并发海量交易,分布式数据库平台同时完整兼容mysql、PosgreSQL和SparkSQL针对应用提供较高兼容性。
平台应用开发基于Spring Cloud微服务框架,业务逻辑从传统的单一中间件被拆解成众多微服务组件,分布式数据库实例服务层提供了可选择、可适配、可动态伸缩的标准数据库计算引擎,可根据应用的场景灵活选择。应用开发采用数据库分布式计算引擎,面向联机交易的业务场景,采用兼容MySQL的计算实例,批处理业务场景选用兼容SparkSQL的计算实例。实例通过访问分布式数据库不同的数据副本,实现对数据的并行处理和多元利用(一份数据,多种用途)。
以下是联机业务应用分布式数据库的几个技术要点:
分布式数据库的核心机制即是将海量数据通过某种算法切分到一个或多个分区中。每个数据分区可以使用不同的物理服务器,通过网络设备将服务器连接到一起,以构成一个逻辑上对外统一的数据库服务。因此,如何将数据进行均匀切分、如何在切分后对数据进行快速检索,是分布式策略必须优先保障的内容。
分布式数据库切分规则包括:
图 2. Hash散列分区
(2)范围分区:范围分区指的是在数据写入的过程中,针对指定分区字段的值判断其所在范围,根据数据所在范围对应的数据分区,判断其物理位置的规则。
2.分布式微服务架构下的数据一致性保证
在利用分布式数据库系统实现底层业务支撑时,会带来很多传统集中式数据库无法比拟的特性,例如:分布式容错能力、弹性可扩展能力等,这些都是对银行等金融行业来说至关重要的优化因素。分布式数据库系统之所以能够具有这些能力,主要是因为它的分布式存储特性,即每个节点保存完整数据库的一部分,而在其它若干节点上部署它的副本。那么,为了实现这样的分布式数据库系统,使之发挥应有的能力,很重要的一环就是在于它的一致性策略。
在实践的过程中,我社重点研究并解决了行业内公认的分布式环境下端到端数据一致性与数据安全的难题:
(1)利用柔性事务保证微服务之间的数据一致性;
通过平台对分布式数据库在银行领域应用策略的研究,深入了解分布式底层技术,利用柔性事务TCC实现微服务之间数据一致性。普惠金融平台应用开发基于Spring Cloud微服务框架,应用程序微服务开发规范明确了每组微服务必须提供try-confirm-cancel接口,遵循对微服务的分布式事务所提出的RESTful TCC解决方案,结合Spring Cloud Netflix和分布式柔性事务实现微服务之间的数据一致性。
(2)在微服务内部,通过分布式数据库技术实现自动化事务一致性保障;
结合普惠金融系统业务数据的特点,合理运用数据多维分区策略,并利用分布式数据库技术,在两阶段提交(2PC)基础之上,针对异常故障场景,实现自动化的事务一致性保障。
为了保证数据的一致性,需要维护一个全局唯一性的ID来区别并发的事务,标识产生或变更的数据,实现这样一个全局唯一的ID通常结合事务发起的时间,依赖时间戳加上其他的一些标识位。国产分布式数据系统,专门设计了一套全分布的逻辑时钟机制,避免了强制所有参与节点从GTM中获取唯一ID的步骤,同时又能满足分布式存储和处理的要求。
3.分布式数据库跨同城数据中心部署
基于分布式数据库完善的多副本数据同步机制,实现跨同城双中心部署,支持数据的容灾与高可用,实现新一代普惠金融平台应用跨数据中心运行,当主中心出现灾难时,数据零丢失,分布式数据库自动容灾切换,对应用系统完全透明。下图是省联社普惠金融平台分布式数据库应用的双活部署示意图:
项目创新成果
点击阅读原文,获取更多精彩内容~
以上是关于省级农信国产分布式数据库应用实践的主要内容,如果未能解决你的问题,请参考以下文章
江苏农信 SDN 技术应用在云平台架构设计实践经验 | 最佳实践