PgQue v0.1:零膨胀的 Postgres 队列

发布于 2026-05-02,PostgresAI
相关开源软件

PgQue v0.1 已发布。

PgQue 是一个“零膨胀(zero-bloat)”的 Postgres 事件/消息队列,完全使用纯 SQL 与 PL/pgSQL 实现。它将最初由 Skype 开发的 PgQ 架构带入现代 Postgres 环境——包括那些不提供/不支持 PgQ 扩展的托管 Postgres 平台。

PgQue 采用“基于快照的批处理(snapshot-based batching)+ 表轮转(table rotation)”,而不是依赖 SKIP LOCKED 再配合 DELETE/UPDATE 的热点路径。这样可以避免许多“库内队列”在持续高负载下常见的死元组、VACUUM 压力、索引膨胀以及随时间漂移的性能退化。

亮点:

  • 纯 SQL / PL/pgSQL 安装:只需一个 SQL 文件,无需 C 扩展
  • 支持 PostgreSQL 14–18
  • 面向托管 Postgres 场景设计:RDS、Aurora、Cloud SQL、AlloyDB、Supabase、Neon 等类似平台均可使用
  • 在主队列路径上按设计保证“零膨胀”
  • 多个相互独立的消费者共享同一条事件日志
  • 内置重试处理与死信队列(dead-letter queue)支持
  • 可选 pg_cron 集成用于“滴答/ticking”(推荐),或使用外部调度器

PgQue 最适合用于需要“持久化事件流/消息队列”,并且在长时间持续负载下“稳定性”比“个位数毫秒级分发延迟”更重要的场景。默认设计通常能在 1–2 秒范围内交付事件,同时 SQL 函数调用本身依然保持轻量。

仓库与文档:

https://github.com/NikolayS/pgque

Hacker News 讨论:

https://news.ycombinator.com/item?id=47817349