PostgreSQL-HA 高可用集群在 Rainbond 上的部署方案
· 阅读需 10 分钟
PostgreSQL 是一种流行的开源关系型数据库管理系统。它提供了标准的SQL语言接口用于操作数据库。
repmgr 是一个用于 PostgreSQL 数据库复制管理的开源工具。它提供了自动化的复制管理,包括:
- 故障检测和自动故障切换:repmgr 可以检测到主服务器故障并自动切换到备用服务器。
- 自动故障恢复:repmgr 可以检测到从服务器故障并自动将其重新加入到复制拓扑中。
- 多个备用服务器:repmgr 支持多个备用服务器,可以在主服务器故障时自动切换到最合适的备用服务器。
- 灵活的复制拓扑:repmgr 支持各种复制拓扑,包括单主服务器和多主服务器。
- 管理和监控:repmgr 提供了用于管理和监控PostgreSQL复制的各种工具和命令。
可以说 repmgr 是一个扩展模块,简化了 PostgreSQL 复制的管理和维护,提高系统的可靠性和可用性。它是一个非常有用的工具,特别是对于需要高可用性的生产环境。同时 repmgr 也是由 Postgresql 社区开发以及维护的。
Pgpool 是一个高性能的连接池和负载均衡器,用于 PostgreSQL 数据库。Pgpool 可以作为中间层,位于客户端和 PostgreSQL 服务器之间,来管理连接请求并分配给不同的 PostgreSQL 服务器进行处理,以提高整体的系统性能和可用性。Pgpool 的一些主要功能包括:
- 连接池:Pgpool在应用程序和数据库之间建立一个连接池,使得多个应用程序可以共享一组数据库连接,避免了重复的连接和断开。
- 负载均衡:Pgpool可以将客户端请求均衡地分配到 多个PostgreSQL服务器上,以实现负载均衡和更好的性能。
- 高可用性:Pgpool可以检测到PostgreSQL服务器的故障,并自动将客户端请求重新路由到其他可用服务器,从而提高系统的可用性和稳定性。
- 并行查询:Pgpool可以将大型查询分成几个子查询,然后将这些子查询并行发送到多个PostgreSQL服务器上执行,以提高查询性能。
本文将介绍在 Rainbond 上使用 Postgresql-repmgr + Pgpool 实现 Postgresql 高可用集群的部署和管理。
架构
当使用 Postgresql HA 集群时,应用只需连接 pgpool
即可。
- 通过 pgpool 实现读写分离,写入操作由 Master 执行,读取操作由 Slave 执行。
- 由 repmgr 实现流复制,Master 数据自动复制到 Slave。
- 当 Master 遇故障下线时,由 repmgr 自定选择 Slave 为 Master,并继续执行写入操作。
- 当某个节点遇故障下线时,由 pgpool 自动断开故障节点的连接,并切换到可用的节点上。
部署 Rainbond
安装 Rainbond,可通过一条命令快速安装 Rainbond,或选择 基于主机安装 和 基于 Kubernetes 安装 Rainbond。
curl -o install.sh https://get.rainbond.com && bash ./install.sh
通过 Rainbond 开源应用商店部署 PostgreSQL 集群
Postgresql HA 集群已发布到 Rainbond 开源应用商店,可一键部署 Postgresql HA 集群。