01 前言
在上一篇文章中,我们分享了利用巨杉数据库SequoiaDB,实现系统同城双中心容灾的最佳实践。巨杉数据库提供了存算分离、多副本、强一致的特性,解决了如双中心双活流量分发、透明故障切换等问题,构建了同城跨区域数据保护的能力。
但是,同城双中心架构的局限性也是显而易见的,因为它无法防范城市级的不可抗力故障,如地震、火山、海啸等自然灾害等。从监管的角度考虑,随着业务等级的提升,对容灾部署模式提出了更高了要求,这就出现了两地三中心的部署模式。
在本文中,我们将和大家一起来了解,如何利用金融级数据库SequoiaDB的多副本、高可用能力,构建两地三中心系统,从而为数据库系统的容灾建设,提供一些新的思路,并提供最佳实践指导建议。
02 背景
2.1 两地三中心技术
当自然灾害等不可抗力故障发生时,同一个城市的基础设施同时遭到破坏,主、备中心均丧失了业务连续性和数据保护的能力。为了达到这样的防范能力,就需要在同城双中心的基础上,加一个异地灾备中心,增加整个系统的高可用性和灾难恢复能力,避免主备站点同时不可用造成的业务大面积瘫痪,及数据的灾难性破坏。
2.2 巨杉金融级分布式数据库SequoiaDB简介
SequoiaDB 巨杉数据库是一款原生分布式数据库,具有存算分离、多模、多副本高可用等技术特性,已经帮助超过 50 家银行机构、上百家金融级用户,来承载高并发联机交易、数据中台、内容管理等多种类型的业务场景,取代了传统架构的数据库。
众多客户,选择巨杉数据库的两地三中心架构,实现业务的跨站点、跨区域容灾,进一步提升了业务系统在灾难场景下的业务连续性和数据保护能力。
03 SequoiaDB 技术架构
SequoiaDB部署示意如图1(以3台服务器为例)。
图1
SequoiaDB分布式架构示意如图2。
图2
从部署示意图及架构图中可以看出,巨杉数据库主要由计算实例、协调节点、编目节点、数据节点四个组件构成。
-
计算实例:负责接收应用端的访问请求,并将其转换成巨杉数据库特有的语法协议。计算实例支持多种引擎,如SQL引擎、JSON引擎、对象存储/文件系统引擎等。
-
协调节点:负责执行计划的生成,及访问请求的路由和转发。将执行分解成独立的计算单元,下发到数据节点进行存取和运算,并将结果返回计算实例。
-
编目节点:负责维护集群的元数据,如拓扑结构、安全策略、表与集合定义以及分区规则等。
-
数据节点:以数据组为单位提供数据的存储和访问,数据组内实现副本化,主节点可读写,备节点可读。如果某个主节点发生故障,则通过RAFT协议选举出新的主节点。
关于巨杉数据库技术架构的详细解析,请参考《金融级数据库巨杉SequoiaDB技术架构讲解》(http://doc.sequoiadb.com/cn/sequoiadb-cat_id-1558957225-edition_id-500)和