实验室笔记 / Marshall MQ
小更新。
大反转。
新招式,少故障,偶尔还有“以前没有它是怎么活过来的?”的时刻。来看看 Marshall MQ 最近的动态。
4 个版本23 项改进与修复一直在折腾,从未停下
实验手记
最新一章
v0.4.02026年10月3日Marshall MQ
故事目前共有 4 章。
Avro,当庭宣读
6 个让人兴奋的亮点
Avro,当庭宣读
- 他看得懂 Avro 了。给 broker 配上兼容 Confluent 的 Schema Registry,每条采用 Confluent 帧格式的消息都会以它本来的记录面目打开——时间戳显示为日期,decimal 显示为数字,枚举显示为名称。
- 而且照样提出异议:同一个 topic 上出现两个 schema 就是漂移,并以新 schema 新增的字段来命名。他比对的结构是 schema 所声明的结构,因此一个可选字段无论是 null 还是有值,都算同一种结构。
- 没有 Registry 时他会直说——没有 Registry、Registry 宕机、未知的 schema id——每种情况都有各自的说明。而且他不会把解码后的记录重新呈递回 Avro topic。
- 消费者组有了自己的界面。点开一个,先宣判,再看数字:已追上、落后以及落后在哪儿、没人在线但活儿在堆积、正在再平衡因而暂不评判。然后是组里有谁,以及它在每个曾经提交过的 topic 上进行到哪儿了。
- 移动消费者组的位置要从这个界面开始,按 topic 操作;超出分区末尾的 offset 会在按钮出现之前就被指出来。
- 把 topic 置顶;如果 broker 不再列出某个置顶的 topic,它会继续留着,被划掉并注明原因。给 broker 加星,让它始终排在第一位。
Marshall 给你画了张图
6 个让人兴奋的亮点
Marshall 给你画了张图
- 他会画出你的 topic:消息在各个分区中的实际分布——承载大部分流量的那个分区,以及邻居都满了它却空空如也的那个。
- 他一到场就汇报:有多少个 topic、哪些死信队列里有消息、哪些消费者组里没有成员,以及他看不到什么。打开一个 topic,他会留下他的笔记。
- 该拒绝的时候他依然会拒绝。队列没有分区,单个分区谈不上分布,三个分区里的十四条消息撑不起比例——这些都不会被画成一张健康的图表。
- 像样的首次运行体验:六个章节,第三章会帮你打开一个 broker,最后一章让你选择由谁来回答“Ask your topic”——Claude Code、Codex,或任何已安装的工具。
- 能在更多 Mac 上运行:macOS 14 Sonoma 或更高版本,支持 Apple 芯片和 Intel。他说 Kafka 所需的一切都内置在应用中。
- 修复:测试 RabbitMQ 连接时竟然在跟它说 Kafka 协议;向 RabbitMQ 发布消息的功能被禁用;所有已连接的 RabbitMQ broker 状态点都一直是灰色。
不止一个 broker,也不止 Kafka
6 个让人兴奋的亮点
不止一个 broker,也不止 Kafka
- 想开多少个 broker 就开多少个,每个都在自己的标签页中。
- RabbitMQ,通过管理 API 接入——队列、深度、消费者、绑定、读取和发布。而且在读取之前,他会先告诉你在那里读取消息要付出什么代价。
- 要求出示证明的 broker:SASL(PLAIN 或 SCRAM)、TLS、两者结合,以及双向 TLS。密码和密钥口令都保存在你的钥匙串中。
- 把消息放回去,移动消费者组的位置以重放——每项操作都要经过一次询问原因的确认,而且他拒绝移动仍在运行的消费者组。
- 通过 Mac 上已登录的 AI CLI 向你的 topic 提问。
- 导航:按 offset 或时间戳定位、分页,以及在消息内部搜索。
你的队列,律师出马。
5 个让人兴奋的亮点
你的队列,律师出马。
- 读取 Kafka:每个 topic 都显示其实际保留的深度、每个消费者组的 lag,死信队列排在最前面。
- 我反对:他会比对读到的每条消息的结构,并在具体的那一行上点名指出不一致的消息。
- 看不到时他会直说。一个从未提交过的消费者组,lag 是未知,而不是零。
- 只读不扰:从不加入消费者组,从不提交 offset,也不会因为查询某个 topic 而创建它。
- 全程支持英语和葡萄牙语。
这个剧情反转,还是个谜。
试试版本号,或者换个关键词。
你已经翻到故事的开头了。
精彩的部分,我们还在写。回到最新版本 ↑