eason.wang
eason.wang
感谢回复! 你提到的两种情况我们验证后反馈。 另外补充: 1)我们的测试场景是: 一个安卓版的paho.mqtt clien连接nanomq服务器(开启了webhook和http auth);在大多数单次连接时mqtt, http auth都工作正常,极少数出现上述日志中的connect timeout)。 > 2024-02-07 11:53:07 [1089] ERROR /home/runner/work/nanomq/nanomq/nanomq/webhook_inproc.c:201: Connect failed: Timed out > 2024-02-07 11:53:11 [1055] ERROR /home/runner/work/nanomq/nanomq/nng/src/sp/protocol/mqtt/auth_http.c:281: Connect failed: Timed out...
配置文件:[nanomq-mx.zip](https://github.com/nanomq/nanomq/files/14203364/nanomq-mx.zip)
> 无论多么频繁的重连都不应该导致broker失去响应。我们自己也测试过很大的重连压力。所以你所说的这种情况不应该出现,若有则是需要优化的地方。 现在需要的是排除其他因素的影响,关闭webhook和auth,connect timeout是说http请求失败,应不会影响mqtt连接。 > > 所以,关闭周边功能 使用旧版本,关闭tls 只使用tcp先试试是否有出现吧? 好的,我们测试后再反馈。
更新: 我们这里反复测试,发现频繁kick重复(mqtt/mqtts) clientid都没有问题; 但是如果开启http auth,(8个client, 间隔500ms)同时重连后,这样很快就会导致nanomq卡住,不响应任何client连接了,也无日志输出了(日志level = trace),只能重启nanomq才行。 测试系统: uname -a Linux mxchip 5.4.31 #1 SMP PREEMPT Fri May 12 07:18:41 UTC 2023 armv7l armv7l armv7l GNU/Linux cat /proc/cpuinfo processor...
> 更新: > > 我们这里反复测试,发现频繁kick重复(mqtt/mqtts) clientid都没有问题; 但是如果开启http auth,(8个client, 间隔500ms)同时重连后,这样很快就会导致nanomq卡住,不响应任何client连接了,也无日志输出了(日志level = trace),只能重启nanomq才行。 > > 测试系统: uname -a Linux mxchip 5.4.31 #1 SMP PREEMPT Fri May 12 07:18:41 UTC 2023 armv7l armv7l...
补充:安装原始版本 nanomq-0.21.5-linux-armhf-full.deb 的测试: 配置文件 [nanomq.conf.txt](https://github.com/nanomq/nanomq/files/14718762/nanomq.conf.txt) client命令: mqttx conn -h '192.168.2.3' -p 1883 -u 'aos' -P '1874' -i 'macos-tcp' -k 20 -l mqtt -V 3.1.1 --insecure -rp 500 --maximum-reconnect-times 1000 失败日志:...
> HTTP Auth 是个同步阻塞操作(否则无法保证auth安全)如果都是Read response: Timed out, 说明都是在等待对端的http结果返回,大量的客户端连接耗尽所有taskq线程自然无法继续工作(我猜你的taskq就是8 ),需要等待原来的http请求返回才有余力。这部分目前的设计如此。 目前我们测试异常后,停止所有client请求,nanomq一直无法恢复,只能重启nanomq。 我们希望是停止client请求一段时间后nanomq能够恢复响应,能否优化配置? 还是说只能外部重启nanomq ? 目前配置文件:taskq 都是默认0 > system { > num_taskq_thread = 0 > max_taskq_thread = 0 > parallel = 0...
更新: 修改了配置如下,暂时16 client重连无异常,只是cpu占用高(单核超100%,双核60%,正常单核8%左右)。 system { num_taskq_thread = 32 max_taskq_thread = 32 parallel = 32 }