
!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时,请添加良好的测试,我们将尽快合并!
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务