请问消息丢弃类型 dropped_qos0_msg触发机制是什么?

EMQX集群版本:5.6.0

客户端之间通过 QoS 0 来进行消息收发,broker日志上有时会出现这样的警告日志:

2024-05-07T10:13:56.732472+08:00 [warning] clientid: 
1000100_d701a9b7b26017a70fba4180100014617c1f, msg: dropped_qos0_msg, 
peername: 39.144.178.201:34481, username: 
1000100_d701a9b7b26017a70fba4180100014617c1f, topic: 
push/1000100/1000100_d701a9b7b26017a70fba4180100014617c1f, queue: #
{len => 0,dropped => 0,store_qos0 => false,max_len => 800}, payload: 
<<10,7,49,48,48,48,49,48,48,16,1,24,129,192,218,192,252,158,159,231,24,34,232
,6,10,42,232,130,157,229,138,159,232,131,189,229,135,186,231,142,176,233,151,1
74,233,162,152,228,188,154,230,156,137,229,147,170,228,186,155,232,161,168,2
31,142,176,239,188,159,18,117,228,184,138,229,142,149,230,137,128,230,151,182,
229,166,130,230,158,156,230,156,137,232,191,153,228,184,137,228,184,...>>

翻了一下官方的注释,解释是因为队列满而丢弃了qos0的消息,而我在系统里面设置的是不存储qos0消息,而且qos0按照mqtt协议理解应该是不存队列的,这里为什么会出现因为队列满而丢弃的日志呢?

那官方的注释可能有问题。 store_qos0 只要设置为 false, 就不会入队。所以当消费者离线时,没有办法入队,打印 dropped_qos0_msg。