[TOC]
# TelePG架构图
* VIP: 虚拟IP地址。用于提供统一的对外访问入口。解决主备切换后,IP地址变化的问题。外部的客户端通过VIP 访问 gateway的端口数据库。
* GATEWAY 集群: 跟VIP配合使用,屏蔽主备切换后,IP地址变化的问题。 可以有多个实例组成高可用集群。依赖Zookeeper实现高可用和集群状态的存储。主要功能是包括管理VIP;路由转发数据包给指定的数据库节点;检测和管理数据库集群的状态变化;实现主备切换和在线恢复等
* Zookeeper : 用于保存gateway集群的配置和状态。协调gateway集群的操作。也保存TelePG集群的实时运行状态。
* 管理平台: 实现对接PAAS、实例管理、监控、主机管理、备份管理、参数组管理等功能。提供可视化运维界面,降低运维的成本。
* 数据库集群:PostgreSQL数据库集群,采取一主多备的部署模式。主备库之间通过流复制 + 备库同步机制的方式,保证主备库的数据同步。只有主库能写入,备库只能读数据。如果主库发生异常,可触发主备切换,让可用的备库提升为主库,保障数据库集群的服务可用性。G
* 采集程序:用于从PG节点上收集监控信息,并放到监控数据库上。监控数据可以通过管理平台的页面展示
* 备份程序: 对PG集群实行全量+增量的备份。需要数据库集群外的机器进行备份数据存储。
大功能上主要分成四个模块,管理平台、TelePG、监控模块、备份模块
## 1. 管理平台
管理平台从数据库上获取实例的所有配置信息,从zookeeper上获取节点集群状态,采用ssh或数据库连接的方式去管理pg集群。功能包括停止、重启、升级数据库实例、在线修改数据库配置、修改数据库用户密码等。
## 2. TelePG
这个模块主要实现PostgreSQL数据库的基本功能和高可用功能。
PG集群的主备数据同步采用pg原生的流复制,保证数据主备数据的一致性。
Gateway在此基础上实现高可用功能。
## 3. 监控模块
这个模块是实现数据库实例监控的。流程:
1)主要通过pg节点提供监控数据
2)采集程序收集到这些数据并写到数据库
3)管理平台从数据库读取监控数据再返回前端展现。
后续也可以接入其他监控系统进行数据存储和展示。
## 4. 备份模块
管理平台修改备份配置,并写到数据库上。备份程序从数据库上读取,加上从zookeeper上获取集群的状态信息。备份程序连上PG集群的主库进行全量和增量的备份和恢复。