4.4.5版本Emqx共享订阅数据丢失

环境

  • EMQX 版本:4.4.5
  • 操作系统版本:k8s

重现此问题的步骤

  1. 设备数据上报topic:iot/PCS-350/20302010/upload
  2. 服务端订阅topic:$share/iot_data/iot/PCS-350/+/upload
  3. 系统运行一段时间,一部分设备的topic数据订阅不到,在EMQX dashbord建立规则能看到数据命中

补充一下,$share/iot_data/iot/# 通配符可以订阅到全部的数据

  • 共享订阅的策略是什么?broker.shared_subscription_strategy = hash 哈希策略会根据 clientid 来发布到固定的订阅者。

  • 如果一个订阅者是保持会话但离线了,消息依然会往他的会话中投递,等到它上线之后才会推送给它。

  • 也有可能是订阅端没有订阅成功,或某段时间掉线所以订阅被取消,需要检查一下订阅信息。可以在 Dashboard 的 Subscription 页面查看。

  • 检查一下是否有 error 或 warning 日志:log/emqx.log.*