环境
- EMQX 版本:emqx-4.2.11
- 操作系统版本:CentOS 7.6.1810
重现此问题的步骤
- 一个账号订阅了7个topic
- 在某段时间内,其中一个topic的消息在emqx broker上无法发出消息,其他topic消息正常接发
- emqx日志查询,抛出错误:cannot publish message to (topic) due to not authorized
请检查 acl 配置
需要看一下 http acl server 对这个特定 topic acl 请求返回的信息。
检查topic和username后会有两种返回
1.200
2.403
查看系统日志没有出现403日志,都是走的200
请打包发下全部的日志信息。或对客户端进行 trace。
另外 4.x 已经停止支持,不会再有bug 修复和功能更新。
trace 命令文档:
2023-12-16 18:38:09.677 [error] <<"adapter_wha3_2">>@10.79.4.158:40652 [ACL http] Request ACL path /mqtt/acl, error: {closed,
"The connection was lost."}
看起来是 http 连接丢了,需要确认下 emqx 和 acl http server 之间的连接是不是正常的。
这些时间段前后的日志报错是 gun_down, closed,这个是 emqx 的 http client 组件。
有两种可能
可以从下面两个方向看看