
PgDog 是一个开源的 PostgreSQL 连接池、负载均衡器和分片代理。它兼容 PostgreSQL,快速、安全,并由数据库工程师社区公开构建。
PgDog 是一款开源的 PostgreSQL 连接池、负载均衡器和分片代理。它是一个单一可执行文件,可替代多种数据库基础设施工具,让您无需修改应用代码即可实现 Postgres 水平扩展。由数据库工程师社区在开放环境中构建,PgDog 能够处理从数千连接池化到跨分片数据库的查询分发等一切事务。
PgDog 可在 100,000+ 客户端之间共享少量 Postgres 连接,同时保持会话状态、咨询锁和 LISTEN/NOTIFY 功能不受影响。采用多线程异步架构,每线程每秒可处理 50,000+ 事务,且无查询长度或连接数限制。
负载均衡器将读取请求分发至副本,检测复制延迟和硬件故障,并在故障转移期间自动将写入流量切换至新主节点。内置 Postgres SQL 解析器支持读写分离,无需客户端修改。
PgDog 直接从查询中提取分片键并将其路由至正确分片。无分片键的查询会并行执行于所有数据库,原生支持 GROUP BY、COUNT、AVG、ORDER BY、MIN、MAX 和 COPY 操作。
跨分片事务使用原生 Postgres 预准备事务和两阶段提交实现原子写入。复制表支持快速的分片本地连接,代理自动生成整数主键。DDL 自动应用于所有分片,因此 Alembic 和 ActiveRecord 等迁移工具无需修改即可使用。
"PgDog 不会为了速度牺牲一致性。它能在大规模场景下保持 ACID 合规性。"
大多数分片解决方案迫使您在性能和数据完整性之间做出选择。PgDog 利用 Postgres 自身的两阶段提交,即使在事务跨多个分片时也能保持完整的 ACID 保证。这意味着您可以在水平扩展的同时,保留与单 Postgres 实例相同的事务语义。
您在生产环境中运行 Postgres,需要处理更多连接、分发读取流量或分片数据库,但不想重写应用。如果您希望使用单一开源代理替代独立的连接池、负载均衡器和分片中间件,同时保持与现有 Postgres 工具和客户端驱动程序的兼容性,PgDog 将特别有价值。
其他您可能感兴趣的工具
Loading comments…
制作者
kettle_dev
项目信息
产品关键词