详解网商银行“三地五中心”数据部署架构(2)

简介: 详解网商银行“三地五中心”数据部署架构(2)

多租户策略


一套分布式数据库集群可以用于支持多个业务,通过分配多个数据库实例进行管理,这就是多租户策略。多租户是分布式数据库实现资源隔离与未来进行云化发展的基础,通过多租户还可以实现安全的隔离、故障的隔离、运维的隔离等。


首先是租户资源的隔离,租户是资源分配的最小单元,每个租户可以进行CPU、内存、存储、网络带宽、连接数等的资源控制。CPU等资源可以在租户创建时进行指定,也可以按需进行动态调整。每个租户之间的资源不进行复用,以避免资源的抢占带来的稳定性问题。


其次是安全的隔离,租户有对应的用户权限,每个租户的用户只能访问自己租户内的实例以及相关租户资源。不存在可以进行跨租户访问的超级用户,实现了安全策略的可控,避免了数据安全问题。


再次是故障的隔离,因为硬件资源的隔离,单个租户的“抖动”、资源不足、数据错误等不会影响其他租户,对于分布式数据库的监控最小采集粒度是租户级别,数据库的故障影响分析也从租户维度进行关联分析。


最后是运维的隔离,租户是资源分配的最小单元,在进行资源调度、集群扩容时按照租户进行迁移,集群的备份与恢复也从租户维度进行控制。



 “异地多活”之“三地五中心”


商业银行数据中心监管指引》要求金融机构设立异地模式的灾备中心,其中重要系统的灾难恢复能力要达到《信息安全技术 信息系统灾难恢复规范》中定义的灾难恢复等级第5级(含)以上。具体要求是,RPO为数分钟到两天,RTO为0~30分钟。传统银行中最常见的是“两地三中心”模式,具备同城的机房级容灾能力,实现了同城一个机房故障下RPO为0,异地数据弱一致。网商银行从“两地三中心”的“异地多活”进一步发展到“三地五中心”,实现RP0为0,RTO在1分钟内的城市级容灾架构,保证了银行系统的高可用和不间断的用户服务能力,实现了金融服务的随时在线。


常见部署模式


image.png


(1)同城双机房采用主备模式,应用访问主数据库,进行数据写入。(2)同城双机房间采用存储设备的同步复制,保障同城双机房之间的数据实时一致。(3)异地机房用异步复制方式进行数据同步,备份节点数据非强一致,对数据实时性要求不高的可以进行读访问。(4)同城主备库之间进行故障检测,出现异常时进行主备切换。(5)应用端可以通过使备库只读而降低主库压力。这种部署模式本质上只能做到机房级容灾,当城市1异常时,城市2的数据是不完整的,无法实现城市级的容灾。
分布式数据库“两地三中心”(见图3-1-5)


传统银行的“两地三中心”(见图3-1-4)


image.png



(1)“两地三中心”模式有三个副本,采用主备模式,应用访问主数据库,进行数据写入主库。


(2)主库数据实时同步到所有备库,基于一致性协议,在1/2的节点完成数据的同步后,即认为数据同步完成。同城机房因耗时更短,两个机房的数据保持实时同步。


(3)异地机房因耗时较长,在数据同步上有延迟,但相对于传统银行的备份节点,该延迟较小,在1分钟以内。


(4)两个从节点都可以提供数据的弱一致性只读服务。三个副本中最多允许有一个故障点,所以这种模式只具备城市2的城市级容灾能力,不具备城市1的容灾能力。分布式数据库“三地五中心”(见图3-1-6)


image.png


“三地五中心”模式有五个副本,最多允许存在两个异常节点,所以采用2-2-1的方式进行分布建设。当任意一个城市的机房发生城市级的故障时,数据库都依然能够继续提供服务。


五副本在进行数据写入实时同步时,需要三个节点完成写入,因一个城市最大节点只有两个,所以必然会存在跨城市的实时同步,带来耗时的增加。具体耗时的增加与城市间的距离有关,例如从杭州到上海,需要增加6~8毫秒。


城市3只有单节点,无法满足城市内的容灾要求,一旦有故障,应用都需要跨城访问数据库,所以在部署时,城市3不进行应用的部署。由于不提供数据服务,城市3可以进一步降低成本,机房5作为日志副本,无全量数据,参与一致性协议投票选举主节点。

相关文章
|
7月前
|
存储 BI Shell
Doris基础-架构、数据模型、数据划分
Apache Doris 是一款高性能、实时分析型数据库,基于MPP架构,支持高并发查询与复杂分析。其前身是百度的Palo项目,现为Apache顶级项目。Doris适用于报表分析、数据仓库构建、日志检索等场景,具备存算一体与存算分离两种架构,灵活适应不同业务需求。它提供主键、明细和聚合三种数据模型,便于高效处理更新、存储与统计汇总操作,广泛应用于大数据分析领域。
752 2
|
7月前
|
SQL 缓存 前端开发
如何开发进销存系统中的基础数据板块?(附架构图+流程图+代码参考)
进销存系统是企业管理采购、销售与库存的核心工具,能有效提升运营效率。其中,“基础数据板块”作为系统基石,决定了后续业务的准确性与扩展性。本文详解产品与仓库模块的设计实现,涵盖功能概述、表结构设计、前后端代码示例及数据流架构,助力企业构建高效稳定的数字化管理体系。
|
6月前
|
数据采集 缓存 前端开发
如何开发门店业绩上报管理系统中的商品数据板块?(附架构图+流程图+代码参考)
本文深入讲解门店业绩上报系统中商品数据板块的设计与实现,涵盖商品类别、信息、档案等内容,详细阐述技术架构、业务流程、数据库设计及开发技巧,并提供完整代码示例,助力企业构建稳定、可扩展的商品数据系统。
|
5月前
|
数据采集 机器学习/深度学习 搜索推荐
MIT新论文:数据即上限,扩散模型的关键能力来自图像统计规律,而非复杂架构
MIT与丰田研究院研究发现,扩散模型的“局部性”并非源于网络架构的精巧设计,而是自然图像统计规律的产物。通过线性模型仅学习像素相关性,即可复现U-Net般的局部敏感模式,揭示数据本身蕴含生成“魔法”。
256 3
MIT新论文:数据即上限,扩散模型的关键能力来自图像统计规律,而非复杂架构
|
4月前
|
存储 监控 安全
132_API部署:FastAPI与现代安全架构深度解析与LLM服务化最佳实践
在大语言模型(LLM)部署的最后一公里,API接口的设计与安全性直接决定了模型服务的可用性、稳定性与用户信任度。随着2025年LLM应用的爆炸式增长,如何构建高性能、高安全性的REST API成为开发者面临的核心挑战。FastAPI作为Python生态中最受青睐的Web框架之一,凭借其卓越的性能、强大的类型安全支持和完善的文档生成能力,已成为LLM服务化部署的首选方案。
|
5月前
|
JSON 供应链 监控
1688商品详情API技术深度解析:从接口架构到数据融合实战
1688商品详情API(item_get接口)可通过商品ID获取标题、价格、库存、SKU等核心数据,适用于价格监控、供应链管理等场景。支持JSON格式返回,需企业认证。Python示例展示如何调用接口获取商品信息。
|
6月前
|
数据采集 监控 数据可视化
数据量暴涨时,抓取架构该如何应对?——豆瓣电影案例调研
本案例讲述了在豆瓣电影数据采集过程中,面对数据量激增和限制机制带来的挑战,如何通过引入爬虫代理、分布式架构与异步IO等技术手段,实现采集系统的优化与扩展,最终支撑起百万级请求的稳定抓取。
373 0
数据量暴涨时,抓取架构该如何应对?——豆瓣电影案例调研
|
6月前
|
SQL 数据采集 数据处理
终于有人把数据架构讲清楚了!
本文深入浅出地解析了数据架构的核心逻辑,涵盖其定义、作用、设计方法及常见误区,助力读者构建贴合业务的数据架构。
|
7月前
|
数据采集 存储 分布式计算
一文读懂数据中台架构,高效构建企业数据价值
在数字化时代,企业面临数据分散、难以统一管理的问题。数据中台架构通过整合、清洗和管理数据,打破信息孤岛,提升决策效率。本文详解其核心组成、搭建步骤及常见挑战,助力企业高效用数。
2249 24
|
6月前
|
缓存 前端开发 BI
如何开发门店业绩上报管理系统中的门店数据板块?(附架构图+流程图+代码参考)
门店业绩上报管理是将门店营业、动销、人效等数据按标准化流程上报至企业中台或BI系统,用于考核、分析和决策。其核心在于构建“数据底座”,涵盖门店信息管理、数据采集、校验、汇总与对接。实现时需解决数据脏、上报慢、分析无据等问题。本文详解了实现路径,包括系统架构、数据模型、业务流程、开发要点、三大代码块(数据库、后端、前端)及FAQ,助你构建高效门店数据管理体系。