环境
- EMQX 版本:4.4.5
- 操作系统版本:k8s
重现此问题的步骤
- 设备数据上报topic:iot/PCS-350/20302010/upload
- 服务端订阅topic:$share/iot_data/iot/PCS-350/+/upload
- 系统运行一段时间,一部分设备的topic数据订阅不到,在EMQX dashbord建立规则能看到数据命中
补充一下,$share/iot_data/iot/# 通配符可以订阅到全部的数据
共享订阅的策略是什么?broker.shared_subscription_strategy = hash 哈希策略会根据 clientid 来发布到固定的订阅者。
如果一个订阅者是保持会话但离线了,消息依然会往他的会话中投递,等到它上线之后才会推送给它。
也有可能是订阅端没有订阅成功,或某段时间掉线所以订阅被取消,需要检查一下订阅信息。可以在 Dashboard 的 Subscription 页面查看。
检查一下是否有 error 或 warning 日志:log/emqx.log.*