
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
!https://raw.githubusercontent.com/batchcorp/plumber/master/assets/plumber_logo_full.png
https://github.com/batchcorp/plumber/workflows/master/badge.svg](https://github.com/batchcorp/plumber/actions/workflows/master-test.yaml) https://goreportcard.com/badge/github.com/batchcorp/plumber](https://goreportcard.com/report/github.com/batchcorp/plumber)
plumber是一款CLI开发工具,用于检查、管道传输、消息传递和重定向Kafka、RabbitMQ、GCP PubSub等多种消息系统中的数据。[1]
[1] 它就像消息系统的curl。
消息系统通常像黑盒——要了解其中传输的数据,需要编写脆弱的消费者代码,最终却会被丢弃。plumber让您无需再浪费时间编写一次性代码,可用于查看队列和数据流、连接不同系统或调试事件驱动系统。
!https://raw.githubusercontent.com/batchcorp/plumber/master/assets/demo.gif
plumber -h)--continuous持续读取支持(类似tail -f)bash$ brew tap batchcorp/public $ brew install plumber
plumber是单二进制文件,安装只需下载、赋予执行权限并从shell调用。示例命令:
bash$ curl -L -o plumber https://github.com/batchcorp/plumber/releases/latest/download/plumber-darwin $ chmod +x plumber $ mv plumber /usr/local/bin/plumber
bash❯ plumber write kafka --topics test --input foo INFO[0000] Successfully wrote message to topic 'test' backend=kafka INFO[0000] Successfully wrote '1' message(s) pkg=plumber
bash❯ plumber read kafka --topics test INFO[0000] Initializing (could take a minute or two) ... backend=kafka ------------- [Count: 1 Received at: 2021-11-30T12:51:32-08:00] ------------------- +----------------------+------------------------------------------+ | Key | NONE | | topic | test | | Offset | 8 | | Partition | 0 | | Header(s) | NONE | +----------------------+------------------------------------------+ foo
注:添加-f参数可进行持续读取(类似tail -f)
写入多条消息
注:多条消息以换行符分隔。
bash$ cat mydata.txt line1 line2 line3 $ cat mydata.txt | plumber write kafka --topics foo INFO[0000] Successfully wrote message to topic 'foo' pkg=kafka/write.go INFO[0000] Successfully wrote message to topic 'foo' pkg=kafka/write.go INFO[0000] Successfully wrote message to topic 'foo' pkg=kafka/write.go
将JSON数组的每个元素作为消息写入
bash$ cat mydata.json [{"key": "value1"},{"key": "value2"}] $ cat mydata.json | plumber write kafka --topics foo --json-array INFO[0000] Successfully wrote message to topic 'foo' pkg=kafka/write.go INFO[0000] Successfully wrote message to topic 'foo' pkg=kafka/write.go
使用--help标志可查看不同命令部分的可用标志:
bash$ plumber --help $ plumber read --help $ plumber read kafka --help
注:如果您的消息系统未被支持,请提交issue,我们将尽力支持!
确保所有plumber实例使用相同的消费者组。
确保所有plumber实例指向同一个队列。
要将布尔标志设为false,在标志前添加--no。
例如:--queue-declare默认值为true,设为false时使用--no-queue-declare。
plumber现在可作为重放目标(隧道)。隧道模式允许在本地网络运行plumber实例,该实例将在Batch平台中作为_重放目标_可用。
这避免了为将Batch集合中的消息重放至消息总线而修改防火墙的需求。
完整文档见:[***]
plumber提供“服务器模式”,使其作为高可用集群运行。
有关“服务器模式”的更多信息:文档
服务器模式示例:https://github.com/batchcorp/plumber/blob/master/docs/server.md
我们是分布式系统爱好者,创立了Batch公司。公司专注于为复杂系统和工作流解决数据流可观测性问题,目标是让_每个人_都能构建异步系统,而不必担心引入过多复杂性。在工作中,我们开发了用于读写消息系统消息的工具,发现该领域严重缺乏工具,因此创建了plumber。
我们自认为是“互联网水管工”,因此这个名字很合适 :)
特别感谢https://github.com/jhump%E5%8F%8A%E5%85%B6%E5%87%BA%E8%89%B2%E7%9A%84https://github.com/jhump/protoreflect%E5%BA%93%EF%BC%8C%E6%B2%A1%E6%9C%89%E5%AE%83%EF%BC%8Cplumber%E7%9A%84%E5%AE%9E%E7%8E%B0%E4%B8%8D%E4%BC%9A%E5%A6%82%E6%AD%A4%E7%AE%80%E5%8D%95%E3%80%82_%E8%B0%A2%E8%B0%A2%EF%BC%81_
推送新plumber版本的步骤:
git tag v0.18.0 mastergit push origin v0.18.0我们欢迎贡献!在提交PR前,请先打开issue讨论您计划的工作。准备好PR时,请添加良好的测试,我们将尽快合并!
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务