retry_interval 请问这个参数能再解释一下吗

retry_interval 请问这个参数,20S左右是不是太长了,没收到应答,mqtt有自己的机制会重传了吗, 太短了也不好,影响其他消息的发送吧,会堵塞吗,太长了会影响业务吧

有两种场景会导致消息重发:

  1. PUBLISH 报文发送给对端后,规定时间内未收到应答。则重发这个报文。
  2. 在保持会话的情况下,客户端重连后;EMQX 会自动重发 未应答的消息,以确保 QoS 流程的正确。

etc/emqx.conf 中可配置:
QoS1/2 消息的重传间隔:

zone.external.retry_interval = 20s

retry_interval 配置的是你说的第一种场景下的重传间隔。

这个是接收端如果没有回复ack,会等待20S才能发送其他消息吗,另外这个客户端丢失ack有办法模拟吗

你可以修改一下你的客户端代码,让你的客户端收到消息后不回复 ACK。