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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 详解网商银行“三地五中心”数据部署架构(1)

数据库部署架构是容量、可用、性能、成本多方面权衡结果,网商银行基础架构从建行之初满足快速业务响应的分布式架构,到单元化架构的落地,再到云原生时代,其中伴随着业务的快速发展,数据库的部署架构也经过多个版本的迭代发展。

容灾方面,从最初的“两地三中心”,具备机房级容灾,不具备全部的城市级容灾,经过扩容建设发展到现在的“三地五中心”。


具体部署方式如图3-1-1所示,采用3-2-1的部署方式,任意一个城市的故障,通过选主(选择主库)实现主库的切换完成容灾。


image.png


分布式业务应用为支撑业务容量的快速发展和业务的多样性,持续进行微服务的拆分改造,其中数据库也随着进行扩容、拆分、迁移。数据库之间的隔离性、集群故障的业务影响面愈加重要,如何合理规划业务集群,实现业务的故障影响面可控,是发展过程中一直面临的挑战。


分布式数据库


分布式数据库中的数据在逻辑上是一个整体,但物理上分布在计算机网络的不同节点上。网络中的每个节点都可以提供数据服务,可以通过中间件或者协同服务器实现协调,以代理的形式完成数据库访问的策略控制。图3-1-2所示为一种集中代理方式,通过协同服务器实现多应用的数据读写访问,在这种方式中应用不感知分布式的多个节点,通过协同服务器进行读写节点的路由选择、读写分离控制、权限控制等。


image.png


分布式数据库增加了系统交互的复杂性,为系统引入了更多潜在的失败环节,但分布式系统带来的好处也非常明显。


(1)持续可用。分布式数据库对同一份数据维护多个副本,当某个副本出现故障时,其他副本还能继续正常提供服务。为避免多个副本同时服务同一份数据带来的数据一致性问题,引入分布式协议Paxos或Raft实现数据的一致性。以系统包含3个副本(1个主库,2个备库)为例,每次写事务都需要让主库和其中一个备库同步,在主库出现故障时,至少一个备库有完整的数据,数据不会丢失,可通过分布式协议完成选主,继续提供写服务。在任意一个备库出现故障时,主库仍然可以将数据同步到另一个备库,形成“多数派”,保证数据不会丢失。


(2)可扩展。通过对集群节点的扩容,完成读写容量的线性扩展,支撑大促的突发流量


(3)低成本。分布式系统通常只需要采用廉价的普通服务器替代高端服务器与高端存储设备,通过自动容错能力实现运维成本的降低。



分布式事务与数据一致性


处理事务是数据库系统的基本能力,通过事务保证数据的准确性与一致性,从而减少了上层应用的复杂度。但数据库系统为实现事务,也进行了一定的性能牺牲。事务必须具有ACID属性。



  1. lA,原子性(Atomicity):事务中多个操作要么全部完成,要么全部未完成,不存在中间状态。


  2. lC,一致性(Consistency):事务必须始终保证系统的一致性状态,不管在什么时间,并发事务有多少。


  3. lI,隔离性(Isolation):为了防止事务操作的混淆,必须使请求序列化,使得在同一时间仅有一个请求作用于同一数据。


  4. lD,持久性(Durability):事务完成以后,事务对于数据的变更持久保存,不会进行回滚。


分布式事务通常是在多个节点的机器上运行,运行时有进行RPC的过程,相对于单系统数据库,在保证事务的原子性上会遇到更多的异常环节,存在更多的恢复与回滚情形,当前大多通过两阶段提交协议进行解决。分布式事务提交到多台服务器上进行处理时,每台服务器都需要进行日志的记录,当事务出现失败时,对应的服务器都需要进行回滚操作,典型的分布式事务处理过程。


图中左侧是协调者状态机,右侧是参与者状态机。协调者是驱动整个事务提交流程的主体,它可以在任意机器上,当然也可以和其中一个参与者在同一台机器上。参与者是真正的事务操作的执行者。协调者首先通知所有的参与者持久化(图中的prepare命令),当参与者使事务的日志处于持久化状态后会回复prepare OK,当所有参与者都回复prepare OK后,意味着整个事务完成了。


然后协调者会写下事务commit的日志,并且发送commit给所有参与者,如果其中任何一个参与者返回失败(即abort OK),那么协调者就会认为事务是失败的,记下事务回滚的日志,并且发送abort给所有参与者。在这个流程中,分布式事务提交的延迟是两次写日志(参与者写prepare日志,协调者写commit日志)的延迟和两次通信(协调者通知参与者prepare,协调者通知参与者commit)的延迟。


image.png

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
消息中间件 存储 缓存
十万订单每秒热点数据架构优化实践深度解析
【11月更文挑战第20天】随着互联网技术的飞速发展,电子商务平台在高峰时段需要处理海量订单,这对系统的性能、稳定性和扩展性提出了极高的要求。尤其是在“双十一”、“618”等大型促销活动中,每秒需要处理数万甚至数十万笔订单,这对系统的热点数据处理能力构成了严峻挑战。本文将深入探讨如何优化架构以应对每秒十万订单级别的热点数据处理,从历史背景、功能点、业务场景、底层原理以及使用Java模拟示例等多个维度进行剖析。
57 8
|
2月前
|
存储 分布式计算 数据挖掘
数据架构 ODPS 是什么?
数据架构 ODPS 是什么?
428 7
|
2月前
|
数据采集 搜索推荐 数据管理
数据架构 CDP 是什么?
数据架构 CDP 是什么?
70 2
|
3月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
88 2
|
16天前
|
Serverless 决策智能 UED
构建全天候自动化智能导购助手:从部署者的视角审视Multi-Agent架构解决方案
在构建基于多代理系统(Multi-Agent System, MAS)的智能导购助手过程中,作为部署者,我体验到了从初步接触到深入理解再到实际应用的一系列步骤。整个部署过程得到了充分的引导和支持,文档详尽全面,使得部署顺利完成,未遇到明显的报错或异常情况。尽管初次尝试时对某些复杂配置环节需反复确认,但整体流程顺畅。
|
2月前
|
监控 安全 持续交付
构建高效的微服务架构:从设计到部署
构建高效的微服务架构:从设计到部署
26 1
|
2月前
|
Docker 微服务 容器
使用Docker Compose实现微服务架构的快速部署
使用Docker Compose实现微服务架构的快速部署
78 1
|
2月前
|
供应链 监控 安全
网络安全中的零信任架构:从概念到部署
网络安全中的零信任架构:从概念到部署
|
3月前
|
存储 大数据 数据处理
洞察未来:数据治理中的数据架构新思维
数据治理中的数据架构新思维对于应对未来挑战、提高数据处理效率、加强数据安全与隐私保护以及促进数据驱动的业务创新具有重要意义。企业需要紧跟时代步伐,不断探索和实践新型数据架构,以洞察未来发展趋势,为企业的长远发展奠定坚实基础。
|
4月前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
236 3

热门文章

最新文章