1

我有一个订阅主题的队列。我的 MQTT 客户端向主题发布消息。我的 Java 程序使用 JCSMP API 使用队列中的消息。但是,我注意到我的 Java 程序从队列接收到的消息的传递模式是直接的,有时是非持久的。那么,这是否意味着我的消息不会被假脱机到 SAN?我是否可以为我的队列设置主题订阅,以便从该主题接收并存储在此队列中的所有消息都将是持久的?

谢谢你。

4

1 回答 1

1

当 Solace 设备接收到发布到与队列上设置的主题订阅匹配的主题的消息时,该消息将被传递到队列并假脱机。如果此消息最初设置为 DIRECT 传递模式,则传递模式将提升为 NON-PERSISTENT。NON-PERSISTENT 消息被视为保证消息并将被假脱机。

如果您收到 NON-PERSISTENT 消息,则该消息已在队列中正确假脱机。

当 Solace 设备接收到发布到与直接在客户端上应用的主题订阅匹配的主题的消息时,这些消息将不会被假脱机并且将直接传递到客户端而无需排队。如果此消息最初以 NON-PERSISTENT 或 PERSISTENT 传递模式发布,它将被降级并由客户端作为 DIRECT 接收。

如果您正在接收具有 DIRECT 传递模式的消息,请确认客户端未直接订阅该主题。该主题应该应用于客户端绑定的队列。

于 2016-03-24T14:40:50.027 回答