GaussDB是基于Shared-Nothing架构的分布式数据库。
图1 分布式架构图


图2 集中式架构图


GaussDB主要包含了GTM(Global Transaction Manager)、OM(Operation Manager)、CM(Cluster Manager)、CN(Coordinator Node)和DN(Data Node)等模块。
图3 分布式逻辑架构图


图4 集中式逻辑架构图


| 名称 | 描述 | 说明 |
|---|---|---|
| OM | 运维管理模块(Operation Manager)。提供集群日常运维、配置管理的管理接口、工具。 | 不同于集群中的实例(GTM、CM、CN、DN)模块,OM为用户提供了相关工具对集群进行管理。 |
| CM | 集群管理模块(Cluster Manager)。管理和监控分布式系统中各个功能单元和物理资源的运行情况,确保整个系统的稳定运行。 | CM由CM Agent、OM Monitor和CM Server组成。
说明:
CM Agent重启的情况很少发生,如果出现可能是因为系统资源不够用导致无法启动新进程。
GaussDB提供了CM Server的主备实例方案,以保证集群管理系统本身的高可用性。正常情况下,CM Agent连接主CM Server,在主CM Server发生故障的情况下,备CM Server会主动升为主CM Server,避免出现CM Server单点故障。 |
| GTM | 全局事务管理器(Global Transaction Manager),负责生成和维护全局事务ID、事务快照、时间戳、sequence信息等全局唯一的信息。 | 整个集群只有一组GTM:主GTM一个,备GTM一个或多个。 |
| CN | 协调节点(Coordinator Node)。负责接收来自应用的访问请求,并向客户端返回执行结果;负责分解任务,并调度任务分片在各DN上并行执行。 | 负责接收来自应用的访问请求,并向客户端返回执行结果。CN负责协调分解任务,并调度任务分片在DN(Data Node)上并行执行。
集群中,CN可以有多个,分别部署在不同的计算节点。多个CN的角色是对等的,执行DML语句时连接到任何一个CN都可以得到一致的结果。 |
| DN | 数据节点(Data Node)。负责存储业务数据(支持行存、列存、混合存储)、执行数据查询任务以及向CN返回执行结果。 | 负责存储业务数据、执行数据查询任务以及向CN返回执行结果。
GaussDB支持DN一主多备高可靠方案。在集群中,DN有多个,数量可以通过配置文件进行配置。其工作原理如下: DN主、备Quorum复制。主、备DN上均存有数据。例如,一主两备,则数据有三份。任何一个DN故障,集群仍然有双份数据确保继续运行。任何一个备DN都可以升主。 建议将主、备DN分散部署在不同的计算节点中。 |
| ETCD | 分布式键值存储系统(Editable Text Configuration Daemon)。用于共享配置和服务发现(服务注册和查找)。 | 负责服务发现(Service Discovery)、消息发布与订阅、负载均衡、分布式通知与协调、分布式锁、分布式队列、集群监控与Leader竞选等功能。 |
数据复制软件软件架构
图5 数据复制软件产品架构图


云数据库GaussDB管理平台(TPOPS)软件架构
云数据库GaussDB管理平台(TPOPS)基于B/S架构开发,由Web、管控Service、管控Agent三部分组成,软件架构如图6所示。
- Web:作为用户接入子系统,用于将用户在Web下发的操作指令通过管控Service下发到数据库实例,同时也可以将管控的console-service服务分析处理后的数据通过Web交互模块传递给Web用户界面向客户展示。
- 管控Service:管控Service是GaussDB轻量化管控的分析控制子系统,包含Web交互模块、实例业务模块、组件业务模块、数据业务模块等微服务模块。向上通过Web交互模块对Web展示实例的监控数据,向下通过组件业务模块对管控Agent下发操作指令。管控Agent收集的信息存储在管控Service的监控数据库和元库中,由管控Service的实例业务模块和数据业务模块进行分析处理。
- 微服务模块有:
- DBS-gaussdb-console
- DBS-GaussDB-open-api
- DBS-GaussDB-instancemanager
- DBS-GaussDB-backupmanager
- DBS-monitor-service
- DBS-luban
- DBS-auth
- DBS-ots
- DBS-zookeeper
- DBS-kafka
- DBS-rds-ha-admin
- InfluxDB
- DBS-common-service
- DBS-resource-manager
- DBS-workflow
- 管控Agent:用于收集实例、主机、组件等运行数据,上报给管控Service进行分析处理。同时也根据管控Service下发的指令在实例上进行相应的操作。实例各节点上均部署一个管控Agent,所有管控Agent共同组成GaussDB轻量化管控的实例监控子系统。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/317493.html