标签: java spring-integration mqtt paho
我正在使用Spring Integration MQTT,它使用Eclipse Paho客户端将MQTT消息发送到Artemis服务器。在我的应用程序上运行性能测试时,我收到了太多正在发布的出版物'错误。我知道我可以通过将连接选项上的maxInflight属性设置为更高的数字(最大65535)来解决此问题。
有没有人知道为什么默认的maxInflight只有10,并且增加maxInflight是否有任何缺点?
答案 0 :(得分:4)
我发现这个article有一些建议,例如:
建议不要将max in-flight设置为65535 - 应为这些服务数据包留出一些ID空间,以避免出现“由于没有新的消息ID可用而导致的内部错误”异常。
尽管如此,将最大飞行时间设置为65000左右(甚至是32768,可能的ID空间的一半)将为排队发布的QoS 1/2消息提供更多空间,而不是默认限制为10
“回退到QoS 0”也是一个不错的选择。
为方便起见,我们可以在maxInflight上公开DefaultMqttPahoClientFactory选项。在此问题上可以免费提出JIRA。
maxInflight
DefaultMqttPahoClientFactory