当前位置: 首页 > news >正文

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),仅供参考

http://www.jsqmd.com/news/710397/

相关文章:

  • 如何用TranslucentTB轻松实现Windows任务栏透明化:完整美化指南
  • 2026编程显示器推荐:明基RD270Q的2K144Hz有多实用?
  • LeetCode热题100-字符串相加
  • FSSADMIN全栈后台管理系统:高性能、多特性,助力企业快速开发
  • 中国省级数据库3.5版本2000-2021年
  • 告别面包板!用Proteus仿真51单片机数字电压表,附完整源码和电路图
  • NServiceBus性能优化技巧:如何提升消息处理速度的黄金法则
  • faiss向量检索库(并非向量数据库)
  • 如何3天掌握FModel:零基础解锁虚幻引擎游戏资源的完整指南
  • ARM设备如何突破架构壁垒?Box86革命性x86模拟方案深度解析
  • 告别数据手册!用STM32CubeMX和HAL库5分钟搞定MAX31855热电偶测温(附模拟SPI备用方案)
  • AutoJs实战避坑:模拟器环境(雷电9/夜神)配置与抖音自动化脚本调试全记录
  • MZmine 3:如何用开源工具完成从原始质谱数据到生物学洞察的完整分析?
  • lichobile开发者入门教程:从零开始构建国际象棋应用
  • 旧电脑焕新颜:实测Xubuntu 24.04 LTS在老笔记本上的流畅度,附详细安装与优化配置
  • 10个超实用Preact企业培训技巧:打造高性能前端团队完整方案
  • 从Vite到你的项目:手把手教你用Node.js os模块复刻‘自动打开浏览器’功能
  • 如何快速掌握Pixelle-Video:面向新手的AI短视频创作完整指南
  • 如何创建PostCSS自定义解析器:轻松扩展新CSS语法的完整指南
  • 终极指南:DevDocs安全协议如何保障API文档的加密与认证安全
  • 专业的节能玻璃生产厂家哪家好 - 品牌企业推荐师(官方)
  • Material Design Lite移动端适配:触控优化与响应式设计终极指南
  • Google面试经典题:用动态规划解决‘高楼扔鸡蛋’问题(附C++代码详解)
  • 20252230 实验三《Python程序设计》实验报告
  • 告别复制粘贴:深入理解TMS320F28335的GPIO配置寄存器(MUX/DIR/PUD)
  • 7个实用技巧掌握NW.js用户行为分析:从入门到精通
  • 突破Agentic LLM推理的存储带宽瓶颈:DualPath系统设计
  • C++的显示类型转换和隐式类型转换
  • 2026年改灯车灯透镜推荐榜:市场分析与四款标杆产品深度解读#马瑞利透镜#树懒舒透镜 - Reaihenh
  • HTTPie CLI与Bash脚本:10个命令行自动化终极技巧