MQTT 在 messageArrived 方法中出现异常时重试

MQTT retries when Exception in messageArrived method

我有一个 MQTT 回调,它转发来自通过 SOAP 端点接收的消息的部分数据,但是当 SOAP 端点出现故障时,这些消息就会丢失,永远不会到达最终消费者。

我知道不同的 QOS 和传递令牌,但我不确定其中任何一个是否真的会帮助我重试发送这些消息,例如在触发异常后。消息可以 "returned" 到主题以供稍后重试或类似的东西以确保正确处理完整消息吗?

在客户端,我通过 Maven 使用 Eclipse-Paho:

    <dependency>
        <groupId>org.eclipse.paho</groupId>
        <artifactId>org.eclipse.paho.client.mqttv3</artifactId>
        <version>1.0.1</version>
    </dependency>

来自这个存储库: https://repo.eclipse.org/content/repositories/paho-releases

在服务器端:

Debian GNU/Linux 8.5 (jessie)
mosquitto 1.3.4-2 (MQTT version 3.1/3.1.1 compatible)

我还应该提供什么?

不,消息一旦传送到客户端就完全从 MQTT 系统中消失了。

您可以自行决定在 MQTT 客户端应用程序中构建任何存储和重试逻辑,以处理下游系统中的任何故障。