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

RabbitMQ通过MQTT发布消息未进入Exchange绑定队列问题咨询

RabbitMQ MQTT发布消息无法进入绑定队列解决方案

90%以上的该类问题由RabbitMQ MQTT插件的默认主题前缀配置导致:你在管理后台直接发布路由键为test的消息可以匹配绑定规则,但MQTT插件会对所有MQTT客户端发布的主题默认加指定前缀,导致实际消息的路由键和队列绑定的test不匹配。

排查步骤

  • 登录RabbitMQ管理后台,进入amq.topic Exchange详情页,开启追踪功能
  • 运行Python脚本发布1条测试消息,查看追踪日志中该消息的实际路由键值

修复方案

  • 方案1:调整队列绑定规则

    如果追踪到的实际路由键为带前缀的格式(比如默认的mqtt.topic.test),直接将mqtt-messages队列与amq.topic的绑定路由键修改为该实际值即可。
  • 方案2:取消MQTT插件默认主题前缀

    在RabbitMQ配置文件中添加如下配置,重启RabbitMQ后生效,后续MQTT消息的路由键会和你发布的主题完全一致:
    mqtt.topic_prefix = ""
    
  • 方案3:校验Python发布端代码

    确认发布的MQTT主题无多余字符、层级分隔符和绑定规则匹配,最小可运行示例如下:
    import paho.mqtt.client as mqtt
    
    client = mqtt.Client()
    # 确认连接的虚拟主机、端口、账号密码和管理后台配置的队列所属资源一致
    client.connect("127.0.0.1", 1883, 60)
    # 发布主题严格和绑定路由键匹配
    client.publish("test", payload="测试内容", qos=0)
    client.disconnect()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:45:04