EMQX版本为4.3.22,采用http auth的方式,查询日志发现经常会出现http-server failed: timeout
但是通过测试后端的http认证服务接口,并不会出现接口超时情况, auth.http.timeout使用的默认值5s,测试接口时也设置的5s超时,接口和emqx部署在同一台服务器上,出现这种超时情况还会有什么可能?
EMQX版本为4.3.22,采用http auth的方式,查询日志发现经常会出现http-server failed: timeout
但是通过测试后端的http认证服务接口,并不会出现接口超时情况, auth.http.timeout使用的默认值5s,测试接口时也设置的5s超时,接口和emqx部署在同一台服务器上,出现这种超时情况还会有什么可能?
timeout 只会在请求超时时才会出现,需要看下超时时的压力情况,如果大量设备同时登录,而 web server 不能及时处理,或者网络不畅,就可能出现这种情况。
建议使用压力测试模拟下你们业务极端情况下的压力,然后看看是否会出现 timeout
在4.3的版本http auth我记得采用的长连接,会有可能出现半连接的情况嘛,就是实际已经和服务端断开,但是emqx还是复用了该连接去请求导致了超时,目前长连接keepalive是如何判断的
我们是直接在线上验证的,这种错误在我们线上很容易出现,我们直接用emqx认证是经常出现,但是同样的我们去调用线上的这个接口,从未出现超时的情况
你好,你们的 HTTP 请求的并发量大概是多少呀?可能是请求在 EMQX 在堆积了,所以排队中的请求到后面就直接超时了
借着题主这个好问题, 如何观察到rate limiter限流的事件, 有没有日志?
5.x rate limiter 不会有事件,但会有 log 日志
目前差不多是1000/s,我这边还有个疑问,auth.http.pool_size使用的是默认值32,但是我在服务器上查到的emqx和接口的连接有194
如何可以查看请求是否在EMQX中堆积了?
通过 emqx_ctl observer 看看
目前我使用的emqx版本是4.3.22,好像没有observer这个命令