GBase 8c支持分布式全组件级的高可用冗余;就是我们的所有节点都支持高可用部署。
● CN;协调器;采用完全对等的部署方式。对外提供接口;负责进行SQL解析和优化、生成执行计划;并协调数据节点进行数据查询和写入。在功能上CN上只存储系统的全局元数据;并不存储实际的业务数据;在部署上;CN多个节点完全对等的部署方式;每个节点在同一时间对外都提供相同的数据库视图;所以我们的CN节点高可用可以根据实际的业务需求;部署1个或多个都可以;多个CN节点可以部署在同机房、同城、异地都可以。
● DN;数据节点;采用主备的高可用架构;主备之间可以配置同步或异步方式。用于处理存储本节点相关的元数据;每个节点还存储它所在的业务数据的分片。在功能上;DN节点负责完成执行协调器节点分发的执行请求;完成数据存储和本地数据查询和写入;在部署上;DN节点每个高可用组采用主从备份的方式;可以部署单主、一主一从以及一主多从的部署方式均可;主从之间可以配置为同步的备份方式也可以配置为异步的备份方式;也可以在一个高可用组内同时存在同步和异步的节点;一般同机房同城的节点之间采用同步的备份方式;异地的节点之间采用异步的备份方式。
● GTM;全局事务管理器;采用主备的高可用架构;主备之间可以配置同步或异步方式。主要是做分布式事务;负责生成并维护全局时间戳;保证集群数据一致性。在部署上;GTM的与DN节点的部署类似;也是一主多从的备份方式;节点间可以采用同步的备份方式也可以采用异步的备份方式。
● HA Center;这个实际上是ETCD;;集群状态管理器;采用Raft的复制协议。存储各个节点的高可用状态;负责在故障情况下判断集群各个节点状态。
● GHA Server;这个实际上是patroni;;集群管理器;采用主备的高可用架构;主备之间可以配置同步或异步方式。用以管理整个集群各个节点的高可用状态;主备、死活等;。GHA Server的主备信息与DN类似;也是将leader信息存在HA Center上;谁先写谁就是主;需要周期更新;如果超过TTL没更新就会删掉leader信息;其他节点去写就能写进去就变成leader了。
● GHA Agent 跟着每个CN和DN上都有;作为代理;接收GHA Server的消息并处理。;这个其实在图里都不用体现;部署上也都是跟着CN和DN一起了;对外不体现;
同时;GBase 8c的高可用支持双网卡配置;可以将数据面和控制面分开;以应对在高并发场景下;因数据库业务拥塞导致的高可用功能不可用情况。;网卡方面;一般数据面需要万兆网卡;以应对业务量;控制面千兆或百兆网卡均可;