PgDog icon

PgDog

PgDog 是一款开源 PostgreSQL 代理,集连接池、负载均衡与分片于一体,支持横向扩展,可直接置于现有应用前,无需修改代码。

PgDog

概述

PgDog 是一款用于横向扩展的开源 PostgreSQL 代理。它将连接池、负载均衡和分片整合在一个可执行程序中,可通过 Helm 或 Docker 部署,并放置在现有 PostgreSQL 应用前。

该产品旨在在扩展规模的同时保持 PostgreSQL 行为不变。主页强调事务池化、读写路由、感知分片键的查询执行、跨分片事务、复制表,以及对常见 Postgres 客户端库和迁移工作流的支持。

核心能力

真实事务模式下的连接池

PgDog 可以作为事务感知型池化器位于 PostgreSQL 前端。主页称,它能在保持会话状态、advisory locks、LISTEN/NOTIFY 和 prepared statements 的同时,让少量 Postgres 连接服务于 100,000+ 客户端。

读/写负载均衡

它可以借助副本健康状态、复制延迟和故障切换检测,通过单一端点路由读写。负载均衡部分说明,SELECT 查询会发送到副本,而其他查询会发送到主库,并使用 PostgreSQL 内部 SQL 解析器以确保兼容性。

基于查询的分片与散射/聚合执行

PgDog 可以从查询中提取分片键,并将其发送到正确的分片。对于没有分片键的查询,可以并行在所有数据库上执行,主页将这种方式描述为 scatter/gather。

跨分片事务与模式协调

该产品支持跨分片写入,并在出错时自动回滚,使用 PostgreSQL prepared transactions 和 two-phase commit。主页还说明,DDL 会在各分片之间传播,因此常见迁移工具可以继续工作。

关系型分片功能

PgDog 支持复制表和分片本地连接,并且可以让整数主键保持单调递增并由代理生成。它也支持通过普通 UPDATE 语句更新分片键。

常见使用场景

  • 降低 PostgreSQL 连接压力

    当应用需要的 PostgreSQL 客户端数量超过单个数据库可轻松承受的范围时,可使用 PgDog。它的事务池化模式适用于高连接数场景,同时保留常见会话功能。

  • 在主库与副本之间路由流量

    可用它通过单一稳定端点将读请求发送到副本,并将写请求保留在主库。该产品面向希望在不更改应用配置的情况下实现延迟检查和故障切换处理的团队。

  • 对多租户或基于键的数据集进行分片

    当需要在不重写应用的情况下,将面向租户或基于键的数据拆分到多个分片时,可使用 PgDog。代理可以从 SQL 中读取分片键,并将每个查询定向到正确的数据库。

  • 在横向扩展时保持关系型行为

    对于需要跨分片写入、复制表或分片本地连接,同时保持 PostgreSQL 语义的工作负载,可使用它。主页重点提到 ACID 行为、two-phase commit,以及基于 UPDATE 的键迁移等常规 SQL 模式。

  • 以集群规模运行 PgDog

    当团队需要集中式集群管理、实时查询指标或人工工程支持时,可使用企业版。路线图和博客将这些能力描述为面向更大规模部署和生产运营的功能。

Pros and Cons

Pros

  • 将池化、负载均衡和分片整合在一个 PostgreSQL 代理中,而不是拆分为多个工具。
  • 根据主页和博客的说法,它被设计为可直接接入的代理,无需修改应用。
  • 在事务池化模式下支持 PostgreSQL 会话功能,例如 SET 命令、advisory locks、LISTEN/NOTIFY 和 prepared statements。
  • 可以将读请求路由到副本,检测延迟或故障切换,并在无需修改配置的情况下迁移流量。
  • 包含关系型分片功能,例如跨分片事务、复制表以及分片间 DDL 传播。

Cons

  • 收集到的资料没有提供完整的文档集,无法全面了解除常见客户端库和部署方式之外的受支持集成、驱动或基础设施。
  • 企业能力(如控制平面和查询洞察)被描述为开发中,因此在源材料中尚未普遍可用。
  • 收集到的定价页面文本中没有可见的价格细节,因此这些来源无法明确公开其费用结构。

FAQ

PgDog 需要修改应用吗?

PgDog 旨在作为 PostgreSQL 代理部署在现有应用前。主页和博客将其描述为无需修改应用代码即可直接接入的代理,融资公告则称它可部署在云账户、内部部署环境、托管机房机柜或笔记本电脑上。

PgDog 是做什么的?

资料显示 PgDog 扮演三种角色:连接池器、负载均衡器和分布式数据库/分片代理。主页和定价页将其定位为一个可处理连接池、读写路由和分片逻辑的单一可执行程序。

PgDog 是免费还是付费?

定价页在收集到的文本中没有显示套餐名称或价格。但它展示了开源项目的安装路径,企业页面则描述了控制平面、查询洞察和专属支持等独立企业功能。

PgDog Enterprise 包含什么?

企业路线图显示团队正在构建集中式配置、集群管理、基于角色的访问控制、查询统计、自动查询计划分析以及坏查询拦截。页面还提到目前可提供专属支持。

PgDog 如何部署?

主页给出了 Helm 和 Docker 的安装示例,融资公告则说明 PgDog 可部署在任何地方,包括内部部署环境和云账户。收集到的资料没有提供受支持数据库、驱动或云集成的完整清单。

Quick Facts

类别
开发者工具
产品类型
开源 PostgreSQL 代理
核心功能
连接池器、负载均衡器、分片代理
部署方式
Helm、Docker、云端、内部部署和本地环境
网站
pgdog.dev
企业状态
控制平面和查询洞察仍在开发中;目前可提供专属支持