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.
10. Por que o MQTT é popular em IoT?
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:
- Publique com QoS 0, 1 e 2 e observe o fluxo de pacotes com
-d(saída de depuração). - Crie uma mensagem retida, assine e depois limpe-a.
- Dispare um Last Will encerrando um cliente abruptamente.
- Reutilize um client ID em dois terminais e observe o loop de desconexão.
- 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.



