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

Fiware Orion Context Broker MQTT通知失效求助

排查Fiware Orion MQTT订阅通知丢失问题

1. 检查Docker网络连通性

  • 确认Orion和Mosquitto容器在同一Docker网络中。执行docker inspect orion-container-name和docker inspect mosquitto-container-name,查看NetworkSettings.Networks字段是否一致。
  • 进入Orion容器内测试连通性:docker exec -it orion-container-name /bin/sh,然后用telnet mosquitto-container-host 1883或nc -zv mosquitto-container-host 1883验证端口是否可达。

2. 核对MQTT订阅配置细节

  • 检查订阅的mqtt.topic是否和客户端订阅的主题完全匹配(大小写敏感)。
  • 确认订阅里的mqtt.host是Mosquitto容器的服务名或容器IP,别用localhost(容器内的localhost指向自身,不是宿主机)。
  • 检查mqtt.port是否是Mosquitto实际监听的端口,默认是1883,避免端口配置错误。

3. 查看日志定位问题

  • 打开Orion的DEBUG日志:启动时加-logLevel DEBUG参数,或者执行docker logs -f orion-container-name,看发送MQTT消息时有没有连接失败、认证错误这类提示。
  • 查看Mosquitto日志:docker logs -f mosquitto-container-name,检查是否有Orion的连接记录,有没有拒绝连接的情况(比如最近改了认证配置)。

4. 验证MQTT客户端与测试工具

  • 确保客户端的MQTT版本和Orion、Mosquitto兼容(Orion默认支持3.1.1版本)。
  • 用mosquitto_sub直接连Mosquitto测试:
    mosquitto_sub -h localhost -p 1883 -t "你的目标主题"
    
    然后触发实体PATCH操作,看能不能收到消息,排除客户端自身问题。

5. 检查版本兼容性

  • 确认最近有没有升级过Orion或Mosquitto,部分版本更新可能带来MQTT交互的兼容问题,试试回滚到之前正常工作的版本验证。

6. 排查订阅过滤规则

  • 检查订阅的entities和attrs过滤条件是不是太严格,比如只订阅了特定属性,但PATCH的是未包含的属性,导致没触发通知。
  • 确认notifyConditions配置正确,比如type设为ONCHANGE时,指定的属性确实发生了变更。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:40:38