这个项目能做什么
PgDog是一款用Rust编写的开源PostgreSQL代理,旨在通过连接池、跨副本负载均衡以及数据库水平分片来扩展PostgreSQL部署规模。它作为应用层(OSI第七层)代理运行,能够理解PostgreSQL协议,从而根据读写意图、分片键或Schema上下文实现智能查询路由。
核心功能包括:
- 事务与会话级连接池,配备高级恢复机制,包括自动回滚遗弃的事务。
- 在主节点和只读副本之间进行负载均衡,支持轮询、随机或最少活跃连接等策略,并具备实时健康检查和故障转移能力。
- 通过分区函数(HASH、LIST、RANGE)或基于Schema的路由实现分片,支持跨分片查询及内存结果聚合。
- 支持无序列号的唯一ID生成、分片键更新、多行插入以及用于原子跨分片写入的两阶段提交。
- 利用逻辑复制实现重分片,支持零停机数据重新分布。
- 灵活的认证方式:密码认证、AWS RDS IAM、Azure Workload Identity以及HashiCorp Vault(动态/静态角色)。
- 通过OpenMetrics、OTEL或PgBouncer风格的管理数据库进行监控。
部署方式包括Docker Compose、Kubernetes(含EKS)Helm图表以及AWS ECS Terraform模块。配置使用TOML文件(`pgdog.toml`用于数据库和设置,`users.toml`用于凭据)。该工具针对通用硬件的性能进行了优化,并内置了重分片期间的Schema和数据同步工具。
文档和社区支持可通过官方站点和Discord获取。企业版功能的文档单独提供。
评论
0 评分人数达到10人后显示
登录后参与讨论。