MQTT协议支持三种消息质量等级,分别是:
1. 最多一次(At most once):发布者发送消息后,不会收到任何确认信息。如果消息丢失或传输失败,订阅者将无法接收到该消息。
2. 至少一次(At least once):发布者发送消息后,会收到订阅者的确认信息。如果消息丢失或传输失败,发布者会重复发送该消息,直到订阅者接收到为止。
3. 恰好一次(Exactly once):发布者发送消息后,会收到订阅者的确认信息,并且保证消息只被传输一次。这种消息质量等级需要在发布者和订阅者之间进行两阶段确认,确保消息的可靠传输。
不同的消息质量等级适用于不同的应用场景。最多一次适用于实时性要求不高、对数据准确性要求不高的场景;至少一次适用于实时性要求较高、对数据准确性要求较高的场景;恰好一次适用于对数据准确性要求非常高的场景,如金融交易等。