zhy
1
错误报告
环境
- EMQX 版本:docker emqx/emqx:5.0.3
- 操作系统版本:Ubuntu 20.04.5 LTS
- 连接语言: golang 1.7
问题描述
我理解的慢订阅是因为消息消费能力弱,导致消息堆积造成的。
我看到文档说正常的消息应该在几十毫秒就应该处理完成。
我打开单机的 emqx 的慢订阅,发现延时都是 1秒多的,当我进入连接详情查看, 飞行窗口消息为0, 队列消息为0 ,并且目前我是接到一个消息就丢入go的协程池的, 所以我想请教一下,这个这个 延迟为啥1秒多,以及如何处理该问题!
其他
慢订阅统计的是消息到达 EMQX 时起,直到消息的 QoS1 流程完全结束这段时间。
消费能力不足不一定会出现消息堆积,如果消息流出速度远远大于流入速度,这个时候是不会挤压的,但是如果每条消息的处理时间都很长,那么依然还是会被慢订阅统计到。
建议通过 trace 等功能对消息进行跟踪,或者在客户端进行抓包,分析消息流程来判断是哪儿的问题。
纤程、协程、线程、进程不管是哪种模型,都和处理速度没有绝对关系。
zhy
3
core-zj-sub-20221117T174535.zip (8.6 KB)
这是我现场抓的日志,请告诉我我该注意哪些内容!
你这个可能是 5.0.5 之前的一个 bug, 5.0.5 之前的版本只有统计类型为 whole 时数据才是正确的。