正在打开每日关注
正在打开每日关注
BullMQ 推出原生 Rust 异步队列,复用成熟 Redis/Lua 语义并实现跨语言互操作与可比吞吐。
BullMQ for Rust is available from today, read eveything about it in our announcement! https://t.co/p9U12pEByx
是什么 文章宣布 BullMQ 推出 Rust 原生实现,首个稳定版本 1.0.0 以 bullmq-official 发布到 crates.io。它用 async/await 与 Tokio 提供符合 Rust 习惯的 Queue、Worker、Job 等 API,同时覆盖延迟、优先级、重试、限流、指标、依赖流和定时调度等生产队列能力。
核心论点 这不是从零重写队列语义:Rust 实现复用与 Node.js、Python、PHP、Elixir 版本相同的 Redis 数据结构和 Lua 脚本,关键状态转换仍由经过生产验证的逻辑处理。因此 Rust 生产的任务可被其他实现消费,迁移可按服务渐进推进,无需适配层或数据迁移。
性能与落地 在 Apple M2 Pro、Redis 7.2 本地环境的对比中,Rust 在顺序添加和批量添加上分别约为 6900 与 38000 jobs/s,Node.js 约为 5400 与 34000;处理并发 10 时 Rust 略快,并发 100 时两者约 27000 jobs/s,说明首版已具备可比吞吐,但不等于所有部署都更快。
边界与风险 文章承认仍有功能差异,高并发下 Node.js 的运行间方差更低,连接使用和 Worker 内部记账还有优化空间。实际收益会受硬件、Redis 部署、网络延迟及任务本身影响,应以目标工作负载基准测试决定是否采用。