mosquitto桥发布导致OOM崩溃

时间:2020-06-10 15:22:07

标签: mqtt embedded-linux iot mosquitto

我们正在开发IoT Edge应用程序,需要在嵌入式Linux网关设备中运行mosquitto Broker。边缘代理已桥接到云MQTT代理。边缘网络中的其他设备将发布到边缘mosquitto代理,而mosquitto会将其发布到云中。边缘网关位于网络连接非常受限的站点。

边缘设备正在以每5秒1条消息的速度向蚊虫经纪人发送28KB负载。我们可以看到蚊子的内部队列继续增加('$ SYS / broker / messages / stored')。它增加了以充分利用网关内存,然后蚊子崩溃。

当我们启用mosquitto登录并进行检查时,我们可以看到

  1. 发布和回复之间的时间间隔很长
  2. 由于这种巨大的延迟,蚊子多次重新发送邮件

请参阅下面的日志以获取特定消息:

1591704254: Sending PUBLISH to local.clientid (d0, q1, r0, m572, 'toCLOUD/Basic', ... (32768 bytes))
1591704275: Sending PUBLISH to local.clientid (d1, q1, r0, m572, 'toCLOUD/Basic', ... (32768 bytes))
1591704296: Sending PUBLISH to local.clientid (d1, q1, r0, m572, 'toCLOUD/Basic', ... (32768 bytes))
1591704317: Sending PUBLISH to local.clientid (d1, q1, r0, m572, 'toCLOUD/Basic', ... (32768 bytes))
1591704338: Sending PUBLISH to local.clientid (d1, q1, r0, m572, 'toCLOUD/Basic', ... (32768 bytes))
1591704359: Sending PUBLISH to local.clientid (d1, q1, r0, m572, 'toCLOUD/Basic', ... (32768 bytes))
1591704380: Sending PUBLISH to local.clientid (d1, q1, r0, m572, 'toCLOUD/Basic', ... (32768 bytes))
1591704401: Sending PUBLISH to local.clientid (d1, q1, r0, m572, 'toCLOUD/Basic', ... (32768 bytes))
1591704422: Sending PUBLISH to local.clientid (d1, q1, r0, m572, 'toCLOUD/Basic', ... (32768 bytes))
1591704526: Received PUBACK from local.clientid (Mid: 572)
1591704597: Received PUBACK from local.clientid (Mid: 572)
1591704680: Received PUBACK from local.clientid (Mid: 572)
1591704750: Received PUBACK from local.clientid (Mid: 572)
1591704838: Received PUBACK from local.clientid (Mid: 572)
1591704901: Received PUBACK from local.clientid (Mid: 572)
1591704975: Received PUBACK from local.clientid (Mid: 572)
1591705039: Received PUBACK from local.clientid (Mid: 572)
1591705120: Received PUBACK from local.clientid (Mid: 572)

要重新创建此问题,我尝试在geteway中使用“ mosquitto_pub”命令,并使用以下相同的连接信息:

for i in `seq 1 1000`
do
    echo $JSON
done | mosquitto_pub -h broker.cloud.com  -t 'toCLOUD/TEST' -l -q 1

但是我无法在“ mosquitto_pub”中看到相同的延迟或重复

什么是最好的解决方案?我可以增加mosquitto桥的发布超时时间吗?还有其他替代解决方案吗?

Mosquitto版本:1.4.14

Mosquitto Bridge配置:

connection MQTT_Bridge
address cloud.broker.com:8883
topic ToCloud/# out 2 "" ""
remote_clientid abcd
keepalive_interval 60
bridge_cafile /certs/ca

回程:卫星(不确定200kbps)

云代理:eMQTT

0 个答案:

没有答案
相关问题