接受者接收到的消息有延迟

环境信息

  • EMQ X 版本:4.2.3
  • 操作系统及版本:ubuntu16.0.4
  • 其他

问题描述

发布者不断发布消息,有时候订阅者过了好几秒后才收到消息

配置文件及日志

[error] <<"backend8">>@172.17.0.1:50840 [ACL http] Request ACL url http://127.0.0.1:8991/mqtt/acl, error: {failed_connect,
                                                                   [{to_address,
                                                                     {"127.0.0.1",
                                                                      8991}},
                                                                    {inet,
                                                                     [inet],
                                                                     econnrefused}]}

通过client id认证,发布者和订阅者都有报这种错误

服务连接不上,所以认证其实都失败了。

请问这个8991端口是有什么用处,我看机器上并没有用到这个端口

这个是你配置的设备ID认证服务,如果你不需要这个认证服务,可以关闭该服务。参考文档

请问能同时使用不同的认证方式吗?
但是出现的问题是,有时候接收者能接收到消息,有时候要过好几秒才能接收到消息,这种情况是认证失败造成的吗?

目前只保留clientid认证,把http认证关闭之后没有出现这个问题,但我想确认一下emq能否使用不同的认证方式,比如某些设备使用clientid认证,某些设备使用http认证

是的,你的认证服务使用的是http方式,会等到http最大超时时间后,认定为当前鉴权失败,最终使用匿名鉴权,通过后才会发送消息。
可以多个认证方式,会影响一些性能,但这些认证方式会应用到全部终端。

所以当我启动了clientid和http认证后,是会先使用clientid认证,还是会先使用http认证,还是随机使用一种方式认证。

按照启动认证服务的顺序

1赞