At least once Хотя бы 1 раз Exactly once Ровно 1 раз MQTT QoS 0 QoS 1 QoS 2 RabbitMQ AMQP 0-9-1 Auto ack Confirms и ручной ack Нет встроенного режима Core NATS По умолчанию Нет Нет NATS JetStream AckNone AckExplicit Deduplication и double ack Kafka Commit offset до обработки Commit offset после обработки Нет на уровне доставки QoS 2: однократная доставка между отправителем и получателем. JetStream: окно дедупликации. Kafka: exactly once результата обработки. 2
сессии Подписки Не нужно подписываться заново Сообщения QoS 1/2 для офлайн-клиента Клиент получает накопленные сообщения Незавершённый обмен Клиент и брокер продолжают доставку по QoS Возвращаемся с тем же Client ID MQTT 5: Clean Start = 0, Session Expiry Interval > 0 Сроки хранения и лимиты брокера ограничивают очередь сообщений 6
Телеметрия Устройство devices/42/commands devices/42/telemetry MQTT брокер Backend Команды Подписчики телеметрии Мониторинг Автоматизация Last Will: брокер сообщит, если устройство пропало 7