Fundamentos de MQTT

40 Perguntas de Entrevista sobre MQTT com Respostas para Desenvolvedores IoT

Quarenta perguntas de entrevista sobre MQTT com respostas concisas sobre fundamentos, QoS, sessões, mensagens retidas, Last Will, MQTT 5 e segurança, além de formas de praticar cada conceito no broker.connectmq.com.

Ilustração de perguntas de entrevista MQTT mostrando um candidato em um quadro branco desenhando um broker, tópicos e níveis de QoS
Rode isso no seu próprio broker MQTTTenha um broker MQTT privado e gerenciado no plano Free e comece com exemplos de código prontos.
Teste grátis Exemplos de código Sem cartão de crédito

Estas 40 perguntas de entrevista sobre MQTT cobrem o que recrutadores de vagas de IoT, sistemas embarcados e backend realmente perguntam: fundamentos, QoS, sessões, mensagens retidas, Last Will, MQTT 5 e segurança. Cada resposta é curta o suficiente para ser dita em voz alta, e a seção de prática mostra como comprovar cada conceito em um broker ao vivo antes da entrevista.

Como usar estas perguntas de entrevista sobre MQTT

Leia uma resposta e depois tente explicá-la sem olhar. Os entrevistadores se importam menos com definições decoradas do que com prós e contras: quando você usaria QoS 0, por que mensagens retidas podem surpreender, o que quebra se dois dispositivos compartilham um client ID. Sempre que possível, execute os comandos da seção de prática contra o servidor MQTT público gratuito, para descrever o que você viu, e não o que leu.

Fundamentos (perguntas 1 a 10)

1. O que é MQTT?

Um protocolo leve de mensagens publish/subscribe que roda sobre TCP, projetado para dispositivos com recursos limitados e redes instáveis. As versões 3.1.1 e 5.0 são padrões OASIS.

2. O que é um broker?

O servidor que recebe todas as mensagens publicadas e as roteia para os clientes com assinaturas correspondentes. Ele também gerencia sessões, mensagens retidas e Wills. Veja o que um broker MQTT faz.

3. Como o publish/subscribe difere do modelo requisição/resposta?

Publicadores e assinantes nunca se endereçam diretamente; o broker os desacopla em espaço, tempo e sincronização. Nosso artigo sobre o modelo publish/subscribe explica os três.

4. O MQTT usa TCP ou UDP?

TCP, opcionalmente encapsulado em TLS ou WebSocket. O MQTT-SN é a variante para UDP e redes de datagramas.

5. Quais são as portas padrão?

1883 para TCP sem criptografia e 8883 para TLS. As portas WebSocket dependem do broker; 8083 e 8084 com o caminho /mqtt são comuns.

6. O que é um tópico?

Uma string UTF-8 com níveis separados por /, como site1/line2/temp. Os tópicos são criados implicitamente quando alguém publica neles.

7. Explique os curingas + e #.

+ corresponde a exatamente um nível; # corresponde a todos os níveis restantes e deve ser o último caractere de um filtro. Curingas só são válidos em assinaturas.

8. Para que serve o client ID?

Ele identifica a sessão no broker. Duas conexões com o mesmo ID fazem o broker desconectar a mais antiga, o que muitas vezes gera um loop de reconexão.

9. O que é keep alive?

O silêncio máximo, em segundos, que um cliente promete. Ele envia PINGREQ quando está ocioso; o broker derruba a conexão após cerca de 1,5 vez o intervalo sem tráfego.

Overhead pequeno por pacote, entrega por push, conexões apenas de saída que funcionam através de NAT e recursos de confiabilidade embutidos como QoS e sessões persistentes.

QoS e entrega (perguntas 11 a 18)

11. Descreva os três níveis de QoS.

QoS 0 é no máximo uma vez, sem confirmação. QoS 1 é pelo menos uma vez, com PUBACK. QoS 2 é exatamente uma vez, usando PUBREC, PUBREL e PUBCOMP.

12. A QoS vale de ponta a ponta?

Não. A QoS se aplica separadamente aos trechos publicador-broker e broker-assinante. O assinante recebe com a menor entre a QoS publicada e a QoS da sua assinatura.

13. Quando você escolheria QoS 0?

Para telemetria frequente, em que a próxima amostra substitui a anterior e uma perda ocasional é aceitável.

14. Por que a QoS 1 pode gerar duplicatas?

Se o PUBACK se perde, o remetente retransmite com a flag DUP ativada. As aplicações precisam ser idempotentes ou eliminar duplicatas.

15. Quanto custa a QoS 2?

Quatro pacotes por mensagem e estado extra nos dois lados, o que reduz a vazão. Use-a apenas quando duplicatas forem realmente prejudiciais. Mais em níveis de QoS do MQTT explicados.

16. O MQTT garante a ordem das mensagens?

Mensagens de um publicador em um tópico com a mesma QoS chegam em ordem. Não há garantia de ordem entre tópicos ou publicadores diferentes.

17. O que é uma janela inflight?

O número de mensagens QoS 1/2 não confirmadas permitidas ao mesmo tempo. O MQTT 5 a expõe como Receive Maximum.

18. O que acontece se ninguém assinar um tópico?

O broker descarta a mensagem, a menos que ela seja retida.

Sessões, mensagens retidas e Last Will (perguntas 19 a 27)

19. O que é uma sessão persistente?

Estado no broker para um client ID (assinaturas e mensagens QoS 1/2 enfileiradas) mantido entre desconexões.

20. Clean Session vs. Clean Start?

No 3.1.1, a Clean Session controla tanto a reutilização quanto o tempo de vida da sessão. O MQTT 5 divide isso em Clean Start (reutilização ao conectar) e Session Expiry Interval (tempo de vida).

21. O que é uma mensagem retida?

A última mensagem de um tópico marcada com retain, armazenada pelo broker e entregue imediatamente a novos assinantes.

22. Como se apaga uma mensagem retida?

Publique um payload vazio com a flag retain no mesmo tópico.

23. Qual é uma armadilha comum das mensagens retidas?

Estado obsoleto: um dispositivo que morreu há muito tempo ainda aparece como "ligado" porque seu último status retido nunca foi limpo. Combine com um Last Will.

24. O que é Last Will and Testament?

Uma mensagem registrada no momento da conexão que o broker publica se o cliente se desconectar sem um DISCONNECT adequado, por exemplo após uma falha de rede.

25. Como montar um status online/offline confiável?

Publique um "online" retido após conectar e registre um Will retido "offline" no mesmo tópico.

26. O que é Will Delay Interval?

Uma configuração do MQTT 5 que adia o Will para que um cliente que se reconecta rapidamente não dispare um falso alerta de offline.

27. Por quanto tempo as mensagens offline são mantidas?

Enquanto a sessão existir e as cotas do broker permitirem. No MQTT 5, Session Expiry e Message Expiry impõem limites explícitos.

MQTT 5 (perguntas 28 a 34)

28. Cite os principais acréscimos do MQTT 5.

Reason codes, user properties, expiração de sessão e de mensagem, topic aliases, shared subscriptions, propriedades de requisição/resposta e autenticação aprimorada. Visão geral em recursos do MQTT 5.

29. O que são reason codes?

Códigos de um byte nas confirmações e no DISCONNECT que explicam os resultados, por exemplo 0x87 Not authorized ou 0x97 Quota exceeded.

30. O que é uma shared subscription?

Um filtro no formato $share/group/topic que distribui as mensagens entre os membros do grupo para balanceamento de carga.

31. O que é um topic alias?

Um inteiro que substitui um nome de tópico longo dentro de uma conexão, reduzindo os bytes por PUBLISH.

32. Como o MQTT 5 suporta requisição/resposta?

O solicitante define um Response Topic e Correlation Data; quem responde publica a resposta nesse tópico com os mesmos correlation data.

33. O que são user properties?

Pares arbitrários de strings chave/valor anexados aos pacotes, semelhantes aos cabeçalhos HTTP, úteis para metadados como versão do conteúdo ou IDs de rastreamento.

34. O que é Message Expiry Interval?

Um tempo de vida por mensagem, após o qual o broker a descarta se não tiver sido entregue, evitando que comandos obsoletos sejam executados mais tarde.

Segurança e operações (perguntas 35 a 40)

35. Como proteger o MQTT?

TLS na 8883, credenciais únicas por dispositivo, permissões de tópico com privilégio mínimo quando o broker oferece suporte e nenhum dado sensível em brokers públicos. Veja boas práticas de segurança em MQTT.

36. O que é TLS mútuo?

TLS em que o cliente apresenta seu próprio certificado para que o broker possa autenticá-lo criptograficamente.

37. Por que não usar a porta 1883 em produção?

Credenciais e payloads trafegam sem criptografia e podem ser capturados em qualquer salto da rede.

38. O que são tópicos $SYS?

Tópicos reservados pelo broker que expõem informações de status. Assinaturas com o curinga # não correspondem a tópicos que começam com $.

39. Como escalar os consumidores MQTT?

Use shared subscriptions para distribuir a carga, mantenha os callbacks rápidos e restrinja ao máximo as assinaturas com curingas.

40. Broker auto-hospedado ou broker MQTT gerenciado?

Auto-hospedar dá controle total, mas acrescenta trabalho com patches, certificados, monitoramento e escalabilidade. Um broker MQTT gerenciado transfere essa carga operacional para o provedor.

Pratique antes da entrevista

Nada supera já ter feito. Instale mosquitto_pub e mosquitto_sub, escolha um sufixo aleatório e execute estes comandos contra o broker.connectmq.com (anônimo, client ID único, dados públicos):

# Q21-22: mensagem retida e depois exclusão
mosquitto_pub -h broker.connectmq.com -p 1883 -i iq-pub-5c9d \
  -t "connectmq/demo/5c9d/lamp" -m "on" -r -q 1
mosquitto_sub -h broker.connectmq.com -p 1883 -i iq-sub-5c9d \
  -t "connectmq/demo/5c9d/#" -v -C 1
mosquitto_pub -h broker.connectmq.com -p 1883 -i iq-pub-5c9d \
  -t "connectmq/demo/5c9d/lamp" -r -n

# Q24-25: Last Will. Inicie e depois feche o terminal à força (não use Ctrl+C)
mosquitto_sub -h broker.connectmq.com -p 1883 -i iq-will-5c9d \
  -t "connectmq/demo/5c9d/ping" -k 10 \
  --will-topic "connectmq/demo/5c9d/status" --will-payload "offline" \
  --will-retain --will-qos 1

# Q30: shared subscription (MQTT 5). Rode em dois terminais com -i diferentes
mosquitto_sub -h broker.connectmq.com -p 1883 -V mqttv5 -i iq-w1-5c9d \
  -t '$share/workers/connectmq/demo/5c9d/jobs' -v

Um checklist de prática para seguir:

  1. Publique com QoS 0, 1 e 2 e observe o fluxo de pacotes com -d (saída de depuração).
  2. Crie uma mensagem retida, assine e depois limpe-a.
  3. Dispare um Last Will encerrando um cliente abruptamente.
  4. Reutilize um client ID em dois terminais e observe o loop de desconexão.
  5. Teste uma shared subscription com dois workers e conte qual deles recebe cada mensagem.

Revise o tutorial de MQTT para tudo o que ainda parecer nebuloso.

Pratique no seu próprio broker ConnectMQ

Entrevistadores adoram candidatos que já operaram uma implantação real. Cadastre-se em app.connectmq.com para obter um broker Serverless gratuito (sem cartão de crédito), conecte-se via TLS com as credenciais geradas e use o cliente no navegador e o explorador de tópicos ao vivo do ConnectMQ para mostrar exatamente como sessões, mensagens retidas e Wills se comportam. O ConnectMQ suporta MQTT 3.1.1 e 5.0, então você pode demonstrar as duas versões.

Perguntas frequentes

Quais temas de MQTT mais aparecem em entrevistas?

Níveis de QoS, sessões persistentes, mensagens retidas, Last Will e design de tópicos são quase universais. Recursos do MQTT 5 e segurança são comuns em vagas sênior.

Preciso conhecer o MQTT 5 para uma entrevista?

Para novos projetos de IoT, sim, pelo menos o básico: reason codes, session expiry, shared subscriptions e user properties.

Como devo me preparar para uma tarefa prática de MQTT?

Fique à vontade com uma biblioteca cliente (Python paho-mqtt ou MQTT.js) e com as ferramentas de linha de comando do Mosquitto, e seja capaz de se conectar via TLS com credenciais.

Qual é uma boa pergunta para fazer ao entrevistador?

Pergunte qual broker e qual versão do MQTT eles usam, como lidam com a identidade dos dispositivos e como monitoram o estado das conexões. Isso demonstra consciência operacional.

Artigos relacionados

Por que Seu Cliente MQTT Fica Desconectando (e Como Corrigir)

Loops de reconexão estão entre os problemas mais comuns do MQTT. Conheça as cinco causas habituais, de client IDs duplicados a timeouts de keep alive e pacotes grandes demais, e siga um fluxo de diagnóstico que identifica a sua.

9 min de leitura

Quem Inventou o MQTT? A História dos Oleodutos à IoT

O MQTT foi inventado em 1999 por Andy Stanford-Clark, da IBM, e Arlen Nipper, da Arcom, para monitorar oleodutos via satélite. Acompanhe sua trajetória até o open source, a OASIS, a ISO e os brokers MQTT gerenciados na nuvem de hoje.

8 min de leitura

Todos os artigos →

Seu broker MQTT privado está a poucos cliques de distância

Crie uma conta, receba as credenciais do seu broker e conecte seu primeiro dispositivo — sem servidores para instalar, atualizar ou escalar.