PgDog:一个PostgreSQL分布式集群中间件

PgDog 是一个实现了 PostgreSQL 分片、连接池以及负载均衡功能的中间。PgDog 使用 Rust 语言编写,支持跨平台(Linux、Mac OS、Windows),具有高性能和高可靠性,可以在不需要修改任何应用程序的前提下实现 PostgreSQL 数据库的水平扩展。

如果你使用过 PgCat 连接池,可以把 PgDog 看作它的新一代继承者。

以下是 PgDog 支持的主要功能特性。

分片功能

PgDog 分片(Sharding)可以将数据库和数据表等拆分到多个 PostgreSQL 服务器中,每个分片包含数据的一个子集,PgDog 负责解决查询路由、跨分片查询和数据移动。

每个分片可以包含多个数据库,其中一个是主节点(Primary),负责读写操作;其他节点是副本(Replica),只能执行查询操作。

负载均衡

PgDog 工作在 OSI 模型的应用层,支持多个 PostgreSQL 副本的负载均衡。

对于查询(SELECT)语句,PgDog 提供了三种可配置的策略:随机(默认)、最小连接、轮询。

对于修改(INSERT、UPDATE 等)操作,PgDog 指定了一个主节点(Primary),这类操作只会发送到主节点。

健康检查

PgDog 定期针对副本进行健康检查,确保数据库节点能够接受连接并执行查询。如果一个节点的健康检查失效,PgDog 会将其列入禁用主机列表,无法再接受客户端的请求。

主机禁用具有一定的时效性,如果被禁用的主机恢复了健康检查,可以自动加入负载均衡的目标中。

事务模式

事务模式使得 PgDog 通过共享少量 PostgreSQL 连接服务数千个客户端。这是默认的模式。

这种模式下 PgDog 提供了一个连接池,如果连接池建立的上百个 PostgreSQL 连接,那么它就可以支持数十万个客户端同时连接。

插件系统

PgDog 支持插件开发,用户可以开发自定义的插件,用于修改查询路由、重新查询或者返回定制结果。PgDog 插件可以使用任何语言进行开发,以共享代码库的形式提供,在应用启动时加载。

认证机制

PostgreSQL 支持各种认证方式,目前 PgDog 实现了其中一部分,例如常用的 SCRAM-SHA-256;PgDog 未来会实现全部认证方式。

会话模式

PgDog 会话模式为每一个客户端分配一个 PostgreSQL 连接,可以确保提供全部 PostgreSQL 功能,包括持久性会话变量、设置和基于进程的功能(例如 LISTEN/NOTIFY)。一些批处理的任务(例如导入大量数据)在会话模式下的性能会更好。

虽然会话模式不支持共享的服务器连接,但是 PgDog 连接池仍然可以保留一定数量的连接复用,可以减少 PostgreSQL 服务器的消耗。

官方网站:https://pgdog.dev/

相关推荐
IvorySQL9 小时前
PostgreSQL 技术日报 (3月28日)|零停机补丁、约束新特性、性能避坑全收录
数据库·postgresql·开源
白露与泡影11 小时前
Spring Cloud进阶--分布式权限校验OAuth2
分布式·spring cloud·wpf
F1FJJ12 小时前
VS Code 里管理 PostgreSQL,有哪些选择?主流扩展横向对比
网络·数据库·postgresql·容器
IvorySQL12 小时前
直播回顾| PostgreSQL 18.3 x IvorySQL 5.3:开启 AI 数据库新纪元
数据库·postgresql·开源
IvorySQL12 小时前
PostgreSQL 技术日报 (3月27日)|当 AI 开始自动创建数据库
数据库·postgresql·开源
风吹落叶325712 小时前
redis 部署方式(分布式)
数据库·redis·分布式
雷工笔记14 小时前
Navicat 备份与还原 PostgreSQL 数据库
数据库·postgresql·oracle
ghie909014 小时前
基于智能算法的微网分布式电源最优调度实现配电网稳定运行
分布式
枫叶丹414 小时前
【HarmonyOS 6.0】ArkData 分布式数据对象新特性:资产传输进度监听与接续传输能力深度解析
开发语言·分布式·华为·wpf·harmonyos
绿算技术1 天前
OpenClaw × GP Spark:本地智能与极速存储的终极融合
大数据·分布式·spark