如何通过Linux终端CLI消费RabbitMQ消息?
使用rabbitmqadmin消费RabbitMQ消息并获取Payload
前提说明
你发布消息时使用的是topic.exchange交换机、key-doku路由键,消费前需要确保有队列和该交换机正确绑定,路由键匹配发布时的规则。
步骤1:创建队列并绑定到交换机(若未存在对应队列)
先创建一个队列,再将其绑定到目标交换机,绑定的路由键要和发布时的key-doku一致:
# 创建名为doku-queue的队列(可自定义名称) rabbitmqadmin declare queue name=doku-queue durable=false # 将队列绑定到topic.exchange交换机,指定匹配的路由键 rabbitmqadmin declare binding source=topic.exchange destination=doku-queue routing_key=key-doku
步骤2:消费消息并提取Payload
方式1:获取完整消息详情(包含Payload)
执行以下命令获取队列中的一条消息,结果会展示消息的所有属性,包括payload内容:
rabbitmqadmin get queue=doku-queue requeue=false
requeue=false:获取后将消息从队列中移除;若需保留消息,改为requeue=true。
方式2:只提取纯Payload内容
如果只需获取payload的文本内容,可通过过滤命令提取:
rabbitmqadmin get queue=doku-queue requeue=false | grep -A1 "payload" | tail -n1
注意事项
- 若已存在绑定好的队列,可直接跳过步骤1,使用已有队列名称执行消费命令。
- 若RabbitMQ服务器不在本地或需要认证,需在命令中添加连接参数,比如
--host <主机地址> --user <用户名> --pass <密码>。
内容的提问来源于stack exchange,提问作者Septian Ibn Yohan
相关产品推荐
相关产品推荐

