5. Qualidade de Serviço (QoS)
5.1 Conceito de QoS no MQTT
A Qualidade de Serviço (Quality of Service – QoS) no MQTT define o nível de garantia na entrega de mensagens entre cliente e broker. Isso permite que diferentes aplicações escolham o equilíbrio ideal entre confiabilidade e desempenho, dependendo das suas necessidades.
O protocolo define três níveis distintos de QoS: 0, 1 e 2. Cada um oferece um comportamento diferente em relação à entrega da mensagem.
5.2 Níveis de QoS
-
QoS 0 – "No Guarantee" (no máximo uma vez):
A mensagem é enviada uma única vez, sem confirmação. Não há verificação de recebimento. É o modo mais rápido e leve, mas sem garantia de entrega. -
QoS 1 – "At Least Once" (pelo menos uma vez):
A mensagem é reenviada até que uma confirmação seja recebida. Pode resultar em duplicatas, mas garante que pelo menos uma cópia da mensagem será entregue. -
QoS 2 – "Exactly Once" (exatamente uma vez):
A mensagem passa por um processo de handshake em quatro etapas para garantir que ela será entregue uma única vez e sem duplicações. É o nível mais confiável e também o mais custoso em termos de processamento e tempo.
5.3 Aplicações típicas
A escolha do nível de QoS deve considerar os requisitos de confiabilidade, latência e volume de dados da aplicação.
Exemplos de uso comum para cada nível:
| Nível de QoS | Aplicações típicas |
|---|---|
| QoS 0 | Monitoramento de temperatura, leitura de sensores não críticos, telemetria em tempo real onde perda de dados não é crítica |
| QoS 1 | Controle de dispositivos, sistemas de alarme, dados que devem ser recebidos mesmo com duplicações |
| QoS 2 | Transações financeiras, comandos de controle de alta prioridade, sistemas de missão crítica |