emqx离线缓存消息推送频率

如果开启且且使用了消息离线缓存功能,但消费客户端重新上线时,emqx离线缓存部分的消息以何种频率推给消费客户端

没有固定的“每秒推送多少条”。客户端恢复会话后,EMQX 会立即按队列顺序下发离线消息,实际速度由客户端确认速度和飞行窗口共同决定。

对 QoS 1/2,EMQX 同时在途的消息数受 mqtt.max_inflight 限制;MQTT 5.0 还受客户端 CONNECT 里的 Receive Maximum 限制。窗口满后,只有收到 PUBACK/PUBCOMP,才会继续从离线消息队列取下一批。因此客户端处理速度、网络 RTT 和 QoS 会直接影响下发速率。

QoS 0 不走确认流程,重连后会尽快发送,主要受网络和 socket 背压限制。是否缓存 QoS 0 还取决于 mqtt.mqueue_store_qos0

如果你要控制离线消息恢复时的下发速度,EMQX 没有单独的“离线消息每秒限速”配置。优先在客户端控制 Receive Maximum(MQTT 5.0),或调整 mqtt.max_inflight;不要先把窗口调大,客户端消费不过来只会把积压从服务端移到客户端。