由 John Doe 六月 12, 2026
Multigres,有可能会成为近年来 PostgreSQL 社区最值得期待的生态组件,助力 PostgreSQL 获得新的发展和突破。

目录
近期,Supabase 正式向开源社区推出 Multigres v0.1 alpha 版本。该项目的目标是为 PostgreSQL 引入媲美 Vitess 的横向扩容能力、高可用特性与简易运维体验,本次发布是该目标的首个公开阶段性成果。目前产品尚处于早期阿尔法阶段,诚挚欢迎大家体验试用。
本次版本仅面向开源社区发布,适配 Supabase 的 Multigres 版本也将很快推出。
什么是 Multigres?
Multigres 是一款服务于 PostgreSQL 的可扩展操作系统。它能够一体化管理 PostgreSQL 实例,提供分库分表、连接池、自动故障转移以及备份编排等能力。
当 PostgreSQL 集群规模扩大后,运维工作会变得十分繁杂:你需要管理读副本、处理故障切换、管控连接数、执行数据备份等等。而 Multigres 将所有这类运维工作整合为一套统一系统。当业务需要扩容时,它还能协助你对数据库进行分库分表,实现横向扩展。
本次 v0.1 阿尔法版本主要上线了高级连接池、自动故障转移功能,同时配套提供了用于部署的 Kubernetes 运维控制器。
Multigres 运维控制器
基于 Kubernetes 的 Multigres 控制器,支持在 Kubernetes 集群中部署和管理 Multigres 集群。开始使用前,你需要准备一套 Kubernetes 集群,并配置好备份存储位置(可以是共享文件系统,或是亚马逊 S3 这类云存储桶)。你也可以在本地 Kind 集群中运行 Multigres。
运行 Multigres 所需的全部镜像均已公开开放。
高可用能力
Multigres 将高可用问题视作分布式共识问题来解决,即便出现脑裂场景,也能保证已提交的数据不会丢失。其采用的协议基于广义共识模型,相比传统共识系统拥有更多灵活性:
- 基于原生 PostgreSQL 复制能力构建:该协议完全沿用未做任何修改的 PostgreSQL 复制机制,同时依旧满足共识系统严苛的一致性要求。
- 自定义数据持久化策略:你可以配置任意复杂的数据持久化规则。这项特性让你能够自主设定可容忍的故障类型,无需受 “多数派仲裁” 这类传统规则限制。例如,若希望数据在单个可用区故障后仍可正常使用,可将持久化策略设为跨可用区模式,同时还能将副本部署到三个以上可用区。
- 增减副本不影响性能:集群运行期间,你可以安全地扩容或缩容副本节点。Multigres 会持续遵循已配置的持久化策略,在保证数据正确性的同时,全程不会对集群性能造成影响。
连接池
Multigres 自研了连接池方案,采用双服务架构:多网关负责接收客户端连接、转发查询请求;多连接池服务负责管理后端数据库连接。相较于单进程连接池,该架构具备多项独特优势:
- 流量路由:与高可用体系深度联动,多网关可自动将连接转发至当前主节点。发生故障切换时,网关会暂存请求直至新主节点完成升级,大幅减少报错。同时还能将读请求分流至多个副本节点,实现读负载均衡。后续版本中,多网关还将支持跨分片的流量转发。
- 上下文感知连接池:无需手动选择事务级、会话级等传统连接池模式。内置语法解析器可识别每一条请求的特性,自动追踪连接状态并合理复用。若请求涉及事务等有状态操作,对应连接会持续绑定当前客户端,直至操作完成。
- 用户独立连接池:为每个数据库用户单独分配专属连接池,池资源互不共享,也无需借助
SET ROLE进行身份模拟。系统通过公平分配算法,将固定的连接配额合理分配给各个用户,保障路由效率。 - 预处理语句合并:在多网关场景下自动合并重复的预处理语句。同一条语句无论被多少个网关转发,PostgreSQL 仅会完成一次解析、执行计划生成与缓存。
数据备份
Multigres 基于 pgBackRest 实现备份功能,所有备份操作均在副本节点执行,避免主节点负载过高。
- 三类备份类型:全量备份会在检查点时刻复制整个数据目录;增量备份仅复制自上一次备份后发生变更的文件;差异备份则只同步距离最近一次全量备份以来的改动数据。常规运维中,一般会定期执行全量备份,并穿插频率更高的增量或差异备份。
- 手动 / 定时备份:通过命令行工具可查看备份列表、手动触发备份与数据恢复。后续还将支持通过集群配置文件设置定时备份任务。
- 集群初始化:集群搭建阶段,Multigres 会自动识别主节点、完成备份,并利用该备份数据初始化所有副本节点,全程无需人工干预,一键拉起可用集群。
关于阿尔法版本说明
v0.1 版本的稳定性,已足够满足功能测试与体验反馈,但尚不适合直接用于生产环境,相关注意事项如下:
- 目前仍存在已知待修复问题;
- 核心亮点功能分库分表暂未上线,本版本仅支持单分片集群,主打高可用与连接池能力;
- 后续版本不保证向前兼容;
- 自定义资源接口尚未稳定,在正式版 v1.0 发布前,接口字段可能发生变更;
- 性能基准测试仍在进行中,相关测试数据将在后续文章公布。
上手体验 Multigres
你可以通过最简自定义资源配置,快速搭建一套三节点高可用集群。
欢迎加入社区交流:前往 GitHub 仓库 提交问题、提出功能建议;也可在仓库讨论区分享想法、寻求技术帮助。