返回资讯中心
外部精选
软件工程
#开发者实时流

Spooler 发布:受 Go channel 启发的托管消息队列

来源标题:Show HN: Spooler – a simple, managed message queue

Spooler 是一个持久化、全托管的简单消息队列,灵感来自 Go channel 的简洁性,主要提供带重试的 send 和 recv。消息被租约接收,处理完成后确认,租约超时或重试过多会重新入队或进入失败状态;还支持原子性的确认并发送,用于建模状态机。每个队列位于独立的 spool 存储隔离单元中,拥有自己的预写日志和复制。

Hacker News 最新gobwas2026/11/4 · 今天5 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

大家好,我是 Sergey,Spooler(https://spooler.sh)的创始人——这是一个持久化、全托管的message queue,灵感来自 Go channel 的简洁性。为什么做这个?每当我需要一个queue来处理某些事情时,常常感觉引入一个queue会比解决方案本身还要复杂。现有系统提供的功能远超我的需求,而用关系型数据库通常意味着要临时发明一套queue语义。我真正想要的只是带重试的 send 和 recv。经过近六个月的工程开发,我很高兴把成果分享给大家。工作原理:你向queue发送一条消息,然后以租约方式recv它;消息处理完成后你确认它,如果租约超时,消息会回到queue中重新投递,或者在重试次数过多后进入失败状态。还有一个原子的 ack-and-send:你可以在一次操作中确认一条消息并追加另一条。你可以用它来建模状态机:一个queue就是一个状态,queue中的一条消息就是处于该状态的一个对象,而 ack-and-send 就是状态转移。每个 Spooler queue 都位于一个 spool 中:一个存储隔离单元(产品名由此而来),拥有自己的 write-ahead log 和复制机制。这意味着持久化操作只有在日志条目在磁盘上持久化并得到所需数量副本确认后才会成功。欢迎试用!有一个用于本地测试的 docker 镜像:https://docs.spooler.sh/local(它使用相同的 API,但采用内存存储,这意味着消息只在容器运行期间存在)。Spooler 有一个开源的 CLI 和 Go 库,还有一个存放其 agent skills 的仓库。服务器本身是闭源的,所以目前没有自托管选项。请分享你对这个产品的想法——我真心希望它用起来感觉平平无奇。Sergey。

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →