You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RabbitMQ CLI获取消息报错:使用rabbitmqadmin时提示[{key_missing,ackmode}]

解决RabbitMQ 3.7.2中rabbitmqadmin get命令的key_missing,ackmode错误

这个报错其实是因为RabbitMQ 3.7.x版本开始,rabbitmqadmin的get命令行为有了变化——必须显式指定ackmode参数,而你之前使用的requeue参数已经被这个新参数替代了,这就是为什么之前能正常运行的命令现在失效了。

快速修复命令

把原来的requeue=false替换为对应的ackmode参数即可,对应你需求的正确命令是:

rabbitmqadmin --host rabbitmq get queue=test ackmode=ack_requeue_false

详细解释与排查思路

1. 理解ackmode参数的可选值

ackmode用来控制获取消息后的处理逻辑,对应你常用的requeue行为:

  • ack_requeue_false:获取消息后直接移除,不再重新入队(完全等价于你之前的requeue=false)
  • ack_requeue_true:获取消息后如果未手动确认,会重新放回队列(等价于requeue=true)
  • no_ack:无需确认操作,直接移除消息

2. 排查工具版本兼容性

如果替换参数后还是报错,检查你的rabbitmqadmin脚本版本:

rabbitmqadmin --version

如果版本和RabbitMQ服务器(3.7.2)不一致,建议从当前RabbitMQ管理后台的http://[你的RabbitMQ地址]:15672/cli/下载对应版本的rabbitmqadmin脚本,替换本地的旧版本,避免因版本不匹配导致的参数兼容问题。

3. 确认队列与权限

  • 先用以下命令确认test队列存在:
    rabbitmqadmin list queues name
    
  • 同时确保执行命令的用户拥有该队列的read权限,避免因权限问题引发的隐性错误。

内容的提问来源于stack exchange,提问作者aitorhh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:00:25