对于PostgreSQL用户来说,随着数据增多、业务负载上升,需要将其进行容器化和集群化改造,以便于管理和伸缩规模。PostgreSQL虽然可以支持集群,但仍然是传统数据库架构而非分布式数据库架构。扩展为集群主要有两种方式:一是单写多读,slave节点实时同步,实施比较简单;二是多写多读,需要在中间层添加分布式事务协调器实现写一致性,多读机制与第一种方法相同。大部分情况下,数据库都是写少读多,第一种方案就足够了。
作为开源数据库的新星,PostgreSQL已经发展了多种集群化部署方案,主要分为裸机部署、容器部署和Kubernetes集群部署三种主要方式;而且,已经研发了相应的扩展版本和部署工具,可以更快地进行集群的部署和管理。不过,由于扩展插件(如PostGIS)往往落后于主版本的开发,与特定版本有一定的依赖性,在缺省的集群安装中可能无法使用,需要自己手动安装甚至从源码进行编译。
Postgres-XL-水平扩展集群
Postgres-XL(https://www.postgres-xl.org/) 基于 PostgreSQL 数据库构建,是一个通用的 ACID 开源的、可方便进行水平扩展的 SQL 数据库解决方案。Postgres-XL内建了MPP (Massively Parallel Processing)能力,引入了分布式事务协调器,支持多写多读,可用于商业智能、大数据分析等场合。
Postgres-XL 可非常灵活的应付各种负载,特性包括:
-
OLTP 写频繁的业务。
-
商业智能需要MPP并行性。
-
操作数据