Patroni 核心代码解读

Patroni 是一个用 Python 实现,用来部署、管理和监控 PostgreSQL 高可用(HA)集群的开源工具。本文对 Patroni 代码的核心模块进行简要介绍。 术语澄清 自 Patroni 3.0 可以管理 Citus 之后,Patroni 涉及了更多的 Cluster 术语,我觉得有必要在这里澄清一下,以消除理解上的偏差。 Database cluster: 由一个 PG 实例管理的多个 databases,也称作 PostgreSQL Instance 或 PostgreSQL 节点 PostgreSQL cluster: 多个 PostgreSQL Instance 构成的一主多备的拓扑结构 Citus cluster: 一个角色为 Coordinator 的 PostgreSQL cluster 和多个角色为 Worker 的 PostgreSQL cluster 构成的 MPP 架构 Patroni cluster: 泛指 Patroni 管理的集群,PostgreSQL cluster 和 Citus cluster 都可叫作 Patroni cluster 从 Patroni 中 Cluster 类的定义也能看出 Patroni cluster 可以代表 PostgreSQL cluster 和 Citus cluster 两类集群,对于非 Citus 集群而言,下面结构的 workers 字段为 None。...

October 24, 2023 · 6 min · 1231 words · pg-x