news 2026/4/27 20:42:21

plumber实战:10个常用场景示例详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
plumber实战:10个常用场景示例详解

plumber实战:10个常用场景示例详解

【免费下载链接】plumberA swiss army knife CLI tool for interacting with Kafka, RabbitMQ and other messaging systems.项目地址: https://gitcode.com/gh_mirrors/pl/plumber

plumber是一款功能强大的命令行工具,被誉为消息系统的"瑞士军刀",能够与Kafka、RabbitMQ等多种消息系统无缝交互。本文将通过10个实用场景示例,带你快速掌握plumber的核心用法,轻松应对日常消息处理任务。

1. 快速读取Kafka消息

Kafka作为主流的分布式消息系统,经常需要查看主题中的消息内容。使用plumber可以轻松实现:

plumber read kafka --topics orders --address="broker1.domain.com:9092"

如果需要持续监听消息,添加--continuous参数即可:

plumber read kafka --topics orders --address="broker1.domain.com:9092" --continuous

2. 向Kafka写入消息

除了读取消息,plumber也能方便地向Kafka写入数据。支持直接输入字符串:

plumber write kafka --topics test --input "Hello Kafka"

或者从文件读取数据:

cat mydata.txt | plumber write kafka --topics foo

对于JSON数组格式的数据,使用--input-as-json-array参数可以批量写入:

cat mydata.json | plumber write kafka --topics foo --input-as-json-array

3. 与RabbitMQ Streams交互

RabbitMQ Streams是RabbitMQ的流处理功能,plumber提供了完整的支持。首先读取流数据:

plumber read rabbit-streams --declare-stream --declare-stream-size 10mb --stream testing

然后写入数据:

plumber write rabbit-streams --stream testing --input-data "Hello Rabbit Streams"

4. AWS SQS消息处理

处理AWS SQS队列消息时,plumber可以指定最大消息数量:

plumber read aws-sqs --queue-name=orders --max-num-messages=10

添加--auto-delete参数可以在读取后自动删除消息:

plumber read aws-sqs --queue-name=orders --max-num-messages=10 --auto-delete

5. NATS消息系统操作

NATS是一个轻量级的消息系统,plumber对其提供了全面支持。读取消息:

plumber read nats --address="nats://user:pass@nats.test.io:4222" --subject "test-subject"

写入消息:

plumber write nats --subject testing --input-data "Hello NATS"

对于NATS JetStream,使用专用命令:

plumber read nats-jetstream --stream testing plumber write nats-jetstream --stream testing --input "Hello JetStream"

6. 消息格式转换与解码

plumber支持多种消息格式的解码,如Thrift格式:

plumber read kafka --topics thrifttest --decode-type thrift --pretty

先写入Thrift二进制数据:

plumber write kafka --topics thrifttest --input-file test-assets/thrift/test_message.bin

7. 数据库变更捕获(CDC)

plumber可以捕获MongoDB的变更数据:

plumber read mongo --database plumbertest --continuous

对于PostgreSQL,使用:

plumber read postgres --replication-slot-name plumber_slot --publisher-name streamdal_plumber --database postgres --address localhost:5432 --username postgres --password postgres

8. 消息中继(Relay)功能

plumber的中继功能可以在不同消息系统间转发消息。例如从RabbitMQ中继到Kafka:

plumber relay rabbit --to kafka --topics relay-test

从AWS SQS中继到Azure Service Bus:

plumber relay aws-sqs --queue-name=source-queue --to azure-service-bus --queue target-queue

9. MQTT协议支持

物联网场景中常用的MQTT协议,plumber也能轻松应对:

plumber read mqtt --address tcp://localhost:1883 --topic iotdata --qos-level at_least_once

对于SSL加密连接:

plumber read mqtt --address ssl://localhost:8883 --topic iotdata --qos-level at_least_once --tls-ca-cert=/path/to/ca_certificate.pem --tls-client-key=/path/to/client_key.pem --tls-client-cert=/path/to/client_certificate.pem

10. 内存数据库消息处理

对于Redis的Pub/Sub和Streams功能,plumber提供了专门支持:

# 读取Redis Pub/Sub消息 plumber read redis-pubsub --address="localhost:6379" --channels="new-orders" # 读取Redis Streams消息 plumber read redis-streams --address="localhost:6379" --streams="new-orders"

安装与使用

要开始使用plumber,首先克隆仓库:

git clone https://gitcode.com/gh_mirrors/pl/plumber cd plumber make build

查看所有可用命令:

plumber --help

每个子命令都有详细帮助:

plumber read --help plumber read kafka --help

总结

plumber作为消息系统的瑞士军刀,提供了丰富的功能和灵活的命令行接口。无论是开发调试、数据迁移还是系统集成,plumber都能大大简化工作流程。通过本文介绍的10个常用场景,相信你已经对plumber有了基本了解。更多高级用法和示例,请参考项目文档:docs/examples.md。

希望这篇实战指南能帮助你更好地利用plumber处理各种消息系统任务,提高工作效率!

【免费下载链接】plumberA swiss army knife CLI tool for interacting with Kafka, RabbitMQ and other messaging systems.项目地址: https://gitcode.com/gh_mirrors/pl/plumber

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/27 20:40:29

深度解析阅读APP书源配置:二维码导入的进阶技巧与实战应用

深度解析阅读APP书源配置:二维码导入的进阶技巧与实战应用 【免费下载链接】Yuedu 📚「阅读」自用书源分享 项目地址: https://gitcode.com/gh_mirrors/yu/Yuedu 还在为寻找优质小说资源而烦恼吗?面对海量小说网站却不知如何高效整合&…

作者头像 李华
网站建设 2026/4/27 20:37:26

《Windows Internals》10.2.20 学习笔记:触发启动服务——为什么有些服务不是“开机就启动”,而是“等条件到了再启动”?

🔥个人主页:杨利杰YJlio❄️个人专栏:《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》 《Python》 《Kali Linux》 《那些年未解决的Windows疑难杂症》🌟 让复杂的事情更…

作者头像 李华
网站建设 2026/4/27 20:36:19

多智能体系统:协作中的智慧涌现

你身边的“群体智慧” 想象一下,一群鸟儿在空中盘旋,没有指挥官,却能整齐划一地转向、加速或减速——这种看似混乱实则有序的现象,其实和“多智能体系统”有着千丝万缕的联系。你或许没听过这个词,但你每天接触的交通调…

作者头像 李华
网站建设 2026/4/27 20:33:44

抖音内容高效管理方案:去水印批量下载与数据分析实战指南

抖音内容高效管理方案:去水印批量下载与数据分析实战指南 【免费下载链接】TikTokDownload 抖音去水印批量下载用户主页作品、喜欢、收藏、图文、音频 项目地址: https://gitcode.com/gh_mirrors/ti/TikTokDownload 面对海量抖音优质内容,你是否曾…

作者头像 李华
网站建设 2026/4/27 20:28:23

视频字幕提取终极指南:如何用本地AI工具5分钟搞定1小时视频

视频字幕提取终极指南:如何用本地AI工具5分钟搞定1小时视频 【免费下载链接】video-subtitle-extractor 视频硬字幕提取,生成srt文件。无需申请第三方API,本地实现文本识别。基于深度学习的视频字幕提取框架,包含字幕区域检测、字…

作者头像 李华
网站建设 2026/4/27 20:28:22

元学习数据隐私保护故障识别系统设计与实现【附代码】

✅ 博主简介:擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导,毕业论文、期刊论文经验交流。 ✅ 如需沟通交流,扫描文章底部二维码。(1)基于联邦元学习的隐私保护联合诊断框架:针对工业…

作者头像 李华