排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
2021年报告
2022年报告
年度数据库
2020年openGauss
2021年TiDB
2022年PolarDB
2023年OceanBase
首页
资讯
活动
大会
学习
课程中心
推荐优质内容、热门课程
学习路径
预设学习计划、达成学习目标
知识图谱
综合了解技术体系知识点
课程库
快速筛选、搜索相关课程
视频学习
专业视频分享技术知识
电子文档
快速搜索阅览技术文档
文档
问答
服务
智能助手小墨
关于数据库相关的问题,您都可以问我
数据库巡检平台
脚本采集百余项,在线智能分析总结
SQLRUN
在线数据库即时SQL运行平台
数据库实训平台
实操环境、开箱即用、一键连接
数据库管理服务
汇聚顶级数据库专家,具备多数据库运维能力
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
我的订单
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
资讯
活动
大会
课程
文档
排行
问答
我的订单
首页
专家团队
智能助手
在线工具
SQLRUN
在线数据库即时SQL运行平台
数据库在线实训平台
实操环境、开箱即用、一键连接
AWR分析
上传AWR报告,查看分析结果
SQL格式化
快速格式化绝大多数SQL语句
SQL审核
审核编写规范,提升执行效率
PLSQL解密
解密超4000字符的PL/SQL语句
OraC函数
查询Oracle C 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
首页
/
分布式数据库转型实践:GoldenDB跨集群访问解决方案
分布式数据库转型实践:GoldenDB跨集群访问解决方案
GoldenDB分布式数据库
2022-10-11
2308
随着单元化方案的普及,越来越多的银行业务也实施了单元化改造。其中银行的代收付业务就可以按照分行所处地域进行单元化拆分,按业务需求使用南北两个数据库集群分别承载业务数据。使用单元化设计可以按分行业务数据进行拆分,减少耦合度,并按照区域就近部署业务,提升业务的响应速度。但单元化设计也给一些全行类的统计查询业务带来不便。业务需要开发专门的归并逻辑,分别从南北两个数据库集群获取数据并做进一步处理,逻辑复杂,并行运算速度慢。
GoldenDB是一款金融级分布式数据库,
主要由计算节点,数据节点,全局事务管理节点以及管理节点等组件组成。
计算节点负责SQL的解析优化分发并将最终结果返回给应用。
一般情况下,计算节点隶属于一个特定的GoldenDB集群(租户)。
DB节点负责SQL的进一步执行并实现数据持久化。
全局事务管理器实现分布式事务的全局一致性。
管理节点对整个系统进行运维监控。
GoldenDB数据库既可以实现超大数据规模及大并发特点的应用数据承载,也可以适配小规模数据的单元化业务。
在充分研究了代收付业务单元化的需求并分析GoldenDB产品特点前提下,GoldenDB团队开发实现了计算节点的另外一种模式。该种模式下的计算节点不隶属于任何一个数据集群,可以进行跨集群访问,并将多个集群的数据结果进行查询、排序、汇聚等,减少业务逻辑的复杂度。另外计算节点可以就近访问本机房的备机,做到同机房内跨集群读,极大
地
提升了跨集群访问的效率。
银行在实施
GoldenDB改造前,
代收付系统使用
Oracle单机数据库实现分库分表。实现方式是使用两个Oracle实例进行单元拆分,业务应用单元分别对接到这两个数据库实例进行数据处理。两个Oracle实例承载的数据有相同的数据结构,业务数据按分行的维度进行了拆分。代收付应用按照分行维度根据路由规则将不同分行的请求分别发送到不同的单元处理。
按照分行维度进行单元化拆分后可以带来增大系统处理能力,缩小故障带来的影响范围等好处,但同时对业务设计也带来一定的挑战。代收付业务中有一些业务涉及到全行数据统计与汇聚。未改造前代收付系统使用的方案是由南北单元的全局业务分别进行跨区域,跨库查询,对所查询结果进行最终汇总,如图1所示。
图1 改造前单元化结构
该方案对于全局业务并不友好,需要增加些额外的逻辑处理跨数据库访问,包括两个数据源状态的维护、异常处理及跨数据源访问的同步与并发控制。另外跨区域访问不同数据库,事务响应的时延会加长,对业务的可用性也带来挑战。由于业务需要维护两套数据源,并实时根据状态调整逻辑并需要对不同异常情况进行处理,因此业务运维难度也增加了很多。
代收付项目迁移到GoldenDB数据库平台后,在充分分析业务逻辑及痛点的基础上,重新评估了跨库查询的方案后提出了新的建设方案。在新方案中,跨库(集群)查询可以由GoldenDB内部组件实现,业务应用只关注业务处理逻辑即可。GoldenDB团队计算节点进行了必要的改造,形成了跨库(集群)查询的方案。
图2 GoldenDB全局计算节点方案
方案由全局计算节点(SCN)对接南北库的计算节点(CN)而成。在相应的计算节点上实现就近读,高可靠高可用等特点,如图2所示。使用新方案后,应用单元内部的跨库查询逻辑可以将之前的“获取不同集群数据”,“对不同数据进行归并处理”,“在某个集群数据获取出现意外之后的异常处理”逻辑全部去除,直接对SCN发送跨库查询语句即可。大大降低了业务复杂度,提升了业务性能。
一)跨集群全局查询简化业务逻辑
GoldenDB对计算节点进行了功能扩展,将后向链路由单纯与数据节点对接扩展成可以同时与计算节点和数据节点对接。改造后的跨库计算节点(SCN)可以与2个或者多个GoldenDB的计算节点(CN)对接,横跨多个集群进行查询。
改造后的应用需要进行跨库全局数据查询的时候,无需再维护多个数据源,只需直接对接到SCN上,向其发送需要进行跨库查询的SQL语句,即可得到最终结果。该方案大大简化了全局业务的跨库维护逻辑,使其专注业务处理本身。
全局跨库查询除了支持简单结果汇总外还支持聚合函数,排序,分类, 分页等常见聚合操作。
二)
机房内就近查询减小业务的时延
在代收付的GoldenDB分库部署方案中,南北两个数据库集群是跨区域交叉互备的。在跨库查询设计中充分利用本机房内的对端数据库集群的备机,实现机房内就近解决了跨区域查询带来时延较长的问题。
方案中SCN对接南北两个集群的计算节点CN。在对端数据库集群的计算节点上开启了读写分离,并使用了就近读的原则。就近读即读取与计算节点最近的备机的数据,避免了跨机房甚至跨区域读带来的网络时延,大大提升了应用的查询效率。
三)智能数据源选择提升业务精确度
在遵循就近读的原则基础上,有时候也会带来副作用。因为就近读一般情况下会读取对端数据库在本机房内的备机。由于主备复制之间有一定的时延,如果数据库处于业务高峰期的时候,主备时延可能会进一步增大。有的业务对数据的实时性有要求,对于超过一定时间外的数据查询的结果会造成不准确甚至错误。
GoldenDB允许业务设定对数据时延的容忍度。如果主备数据时延超过应用的容忍度时延,GoldenDB将会舍弃就近读的原则,选择读主。最大限度保证业务的准确性。
四)高可靠高可用提升业务的安全性
方案设计中充分考虑到了系统的高可靠和高可用,每个组件都采用了双机热备的设计方案,最大限度保证系统的可靠性。
跨集群全局访问方案已按设计和计划进行测试并成功投入到生产中。在投产的一年多时间内整套系统运行平稳,实际使用效果完全符合预期,包括简化业务逻辑,提升查询性能,系统可靠性等。GoldenDB全局访问方案为代收业务平稳过渡到GoldenDB数据库平台上提供了坚实的技术支撑。
金融科技及其他数字化建设越来越趋向于单元化、集群化。在单元化带来的便利、快速迭代以及故障隔离等好处的同时也存在一定局限性。其中最大的局限性就在于单元化之间的数据访问或者全局数据的访问。GoldenDB的跨集群访问解决方案很好地解决了数据库集群间全局数据访问等问题,极大
地
简化了单元化业务的处理逻辑,提升了数据的访问效率。当然GoldenDB的跨集群访问方案还需要进一步解决扁平化,跨集群写以及事务控制等问题,以便为金融科技及数字化产业发展提供更优质的数据库服务。
本文已经刊登在
《金融电子化》2022年8月刊
大数据
goldendb
分布式数据库
数据库集群
集群技术
文章转载自
GoldenDB分布式数据库
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
领墨值
有奖问卷
意见反馈
客服小墨