emq集群的节点会出现emqx_authn_http相关的告警

有用户也遇到过这个问题,统计来看全部的原因都是http server 的实现对 pipline 的支持不够完全。同时发 100 个 request 过去时,有时会有一些请求一直没 response,而且是概率出来的,
过一段时间后,再分成 2 种情况:

  1. 这个链接就会完全不回应,且不断开。变成了僵尸进程。
  2. 这个链接会死掉(有一定的滞后性)。然后 emqx 会再次重连。这情况和你日志里面的很匹配。

但大部分客户都会坚信自己实现的 http server 不可能出问题(可能因为是概率的)。
所以 EMQX 在5.8.1(推荐升级到 5.8.6)推出了一个检查统计僵尸次数的东西:

他会在检查到 http server 连接经过 N 次没有response 后,主动的断开重连。然后打印:force_reconnecting_zombie_http_connection

比如:这个用户就是典型场景:force_reconnecting_zombie_http_connection - #4,来自 jsonyu
然后他重新用 fastapi 的异步框架实现了 http server 后反馈没问题了。