java - 在 Paho MQTT Java 客户端上增加最大飞行时间有什么缺点吗?

标签 java spring-integration mqtt paho

我正在使用 Spring Integration MQTT,它使用 Eclipse Paho 客户端将 MQTT 消息发送到 Artemis 服务器。在我的应用程序上运行性能测试时,我收到“正在进行的发布过多”错误。我知道我可以通过将连接选项上的 maxInflight 属性设置为更高的数字(最大 65535)来解决此问题。

有谁知道为什么默认的 maxInflight 仅为 10 以及增加 maxInflight 是否有任何缺点?

最佳答案

我找到了这个 article有一些建议,例如:

setting max in-flight to 65535 is not recommended – some space for IDs should be left for those service packets to avoid same “Internal error, caused by no new message IDs being available” exception.

但是上面作者说:

Still, setting max in-flight to 65000 or so (or even 32768, half of possible IDs space) will give one much more space for queued to be published QoS 1/2 messages than default limit of 10

“回退到 QoS 0”也是一个不错的选择。

为了方便起见,我们可以在 DefaultMqttPahoClientFactory 上公开 maxInflight 选项。随意提出一个JIRA关于这件事。

关于java - 在 Paho MQTT Java 客户端上增加最大飞行时间有什么缺点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48581710/

相关文章:

具有多个 JVM 的 Java 文件观察器监视单个目录中的传入文件

java - 如何使用 Spring Integration 调用安全的 SOAP 服务

node.js - 使用 pem 证书向远程代理发送消息

acl - Mosquitto 身份验证插件 ACL 检查不会被调用订阅

java - Spring 社交和 Facebook API 更改

java - Spring 集成中屏障组件如何工作?

java - HttpSessionListener 测试,出现奇怪的错误

mqtt - 地址 test/signal/abc 上的用户 : Bob does not have permission ='CREATE_DURABLE_QUEUE' for queue bob. test/test/signal/abc

java - Amazon Alexa : AMAZON. DATE 到 Java 日期/持续时间

java - 发射后取消订阅间隔