https://github.com/sorintlab/stolon
Stolon 是一个用于 PostgreSQL 高可用性的云原生 PostgreSQL 管理器。它是云原生的,因为它可以让您在容器中(kubernetes 集成)以及所有其他类型的基础设施(云 IaaS、旧式基础设施等)上保持高可用性 PostgreSQL。
功能
- 利用 PostgreSQL 流式复制。
- 适应任何类型的分区。在尝试保持最大可用性的同时,它更喜欢一致性而不是可用性。
- kubernetes 集成让您实现 postgreSQL 高可用性。
- 使用 etcd、consul 或 kubernetes API server 等集群存储作为高可用数据存储和 leader 选举。
- 异步(默认)和同步复制。
- 在几分钟内完成集群设置。
- 轻松简单的集群管理。
- 可以与您首选的备份/恢复工具集成进行时间点恢复。
- 备用集群(用于多站点复制和接近零停机时间的迁移)。
- 自动服务发现和动态重新配置(处理 postgres 和 stolon 进程更改其地址)。
- 可以使用 pg_rewind 与当前 master 进行快速实例重新同步。
架构
Stolon 由 3 个主要部分组成
- keeper:它管理一个 PostgreSQL 实例收敛到由领导者哨兵计算的 clusterview。
- sentinel:它发现并监控 keepers 和 proxy,并计算出最佳的 clusterview。
- proxy:客户端的访问点。它强制连接到正确的 PostgreSQL 主服务器并强制关闭与旧主服务器的连接。